1. 程式人生 > >OpenCV中的繪圖函數-OpenCV步步精深

OpenCV中的繪圖函數-OpenCV步步精深

ips str 字符串 晚安 one 藍色 key 橢圓 休息

OpenCV 中的繪圖函數

畫線

首先要為畫的線創造出環境,就要生成一個空的黑底圖像

  1. img=np.zeros((512,512,3), np.uint8)
技術分享
這是黑色的底,我們的畫布,我把窗口名叫做img

np.zeros()有兩個參數,一個是創建的圖片矩陣大小,另一個是數據類型

512,512是像素(第一個512像素高,第二個是512像素寬),3指BGR三種顏色

uint8是用0-255表示所有顏色。

  1. cv2.line(img,(0,0),(511,511),(255,0,0),5)

這個函數有5個參數,img是圖像名稱,起點坐標,終點坐標,(255,0,0)是藍色,5是線的寬度

會畫一條 從左上方到右下角的藍色線段。

畫線兩要素:起點與終點。

技術分享
畫一條
從左上方到右下角的藍色線段。

畫矩形

  1. cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

這個函數有5個參數,圖像名稱,左上頂點坐標,右下頂點坐標,(0,255,0)是綠色,線寬為3

右上角畫一個綠色的矩形

畫矩形兩要素:左上頂點和右下頂點坐標。

技術分享
右上角畫一個綠色矩形

畫圓

  1. cv2.circle(img,(447,63), 63, (0,0,255), -1)

這個函數有5個參數,圖像名稱,圓心坐標,半徑63,(0,0,255)紅色,線寬為-1,當線寬-1時表示封閉圖形的顏色填充。

在畫的矩形中畫一個圓,半徑為128的一般63

畫圓兩要素:指定圓形的中心點坐標和半徑大小

技術分享
畫圓
技術分享
在矩形中畫圓

畫橢圓

  1. cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

這個函數有8個參數:圖像名稱,中心點坐標,長軸長度,短軸長度,旋轉角度,圖像出現的部分(長軸順時針方向起始的角度和結束角度)0,180是下半個橢圓,顏色數組這裏255是藍色,線寬

橢圓要素:1.是中心點的位置坐標 2.長軸和短軸的長度 3.橢圓沿逆時針方向旋轉的角度 4.長軸順時針方向起始的角度和結束角度

技術分享
畫半個橢圓

畫多邊形

  1. pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
  2. pts = pts.reshape((-1,1,2))
  3. img = cv2.polylines(img,[pts],True,(0,255,255),3)

這個函數有5個參數:圖像名稱,頂點列表(這個多邊形在array中有四個頂點),True表示閉合,(0,255,255)是黃色,3是線寬

技術分享
黃色多邊形

在圖片上添加文字

  1. font=cv2.FONT_HERSHEY_SIMPLEX
  2. cv2.putText(img,‘OpenCV‘,(10,500), font, 4,(255,255,255),2)

這個函數有八個參數,圖像名稱,字符串,坐標,字體,字號,(255,255,255)白色、線寬2

技術分享
在圖像上添加文字

匯總所有的圖像吧!

技術分享
所有圖像在一起

現在上所有代碼!


# -*- coding:utf-8 -*-
"""
Created on Sun Dec 29 18:15:27 2016

@author: Y

"""
import cv2
import numpy as np

img=np.zeros((512,512,3), np.uint8)

cv2.line(img,(0,0),(511,511),(255,0,0),5)

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.circle(img,(447,63), 63, (0,0,255), -1)

cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255),3)

font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,‘OpenCV‘,(10,500), font, 4,(255,255,255),2)

winname = ‘img‘
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

後面的顯示的幾行代碼,窗口名是img,顯示,銷毀窗口,已經了然於心了。

休息休息吧,這章學完,我們在人臉識別等等識別上,就能畫出更好的線條與圖案了,不至於那麽醜~

今天就到這了啦,歡迎下面留言哦,讓我知道你來過,我是Y,晚安~

OpenCV中的繪圖函數-OpenCV步步精深