1. 程式人生 > 其它 >Python-OpenCV 中的繪圖函式

Python-OpenCV 中的繪圖函式

OpenCV 中的繪圖函式

學習使用 OpenCV 繪製不同幾何圖形

你將會學習到這些函式:cv2.line(),cv2.circle(),cv2.rectangle(), cv2.ellipse(),cv2.putText() 等。

程式碼

上面所有的這些繪圖函式需要設定下面這些引數:

• img:你想要繪製圖形的那幅影象。

• color:形狀的顏色。以RGB為例,需要傳入一個元組,例如: (255,0,0) 代表藍色。對於灰度圖只需要傳入灰度值。

• thickness:線條的粗細。如果給一個閉合圖形設定為 -1,那麼這個圖形 就會被填充。預設值是 1.

• linetype:線條的型別, 8連線,抗鋸齒等。預設情況是8連線。cv2.LINE_AA 為抗鋸齒,這樣看起來會非常平滑。

畫線

要畫一條線,你只需要告訴函式這條線的起點和終點。我們下面會畫一條 從左上方到右下角的藍色線段。

import cv2
import numpy as np

# Create a black image
img=np.zeros((512,512,3),np.uint8)

# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,156,25),5)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

畫矩形

要畫一個矩形,你需要告訴函式的左上角頂點和右下角頂點的座標。這次 我們會在影象的右上角話一個綠色的矩形。

import cv2
import numpy as np

# Create a black image
img=np.zeros((512,512,3),np.uint8)

cv2.rectangle(img,(184,30),(310,128),(0,255,0),3)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

畫圓

要畫圓的話,只需要指定圓形的中心點座標和半徑大小。我們在上面的矩 形中畫一個圓。

import cv2
import numpy as np

# Create a black image
img=np.zeros((512,512,3),np.uint8)

cv2.circle(img,(184,200),63,(0,0,255),-1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

畫橢圓

畫橢圓比較複雜,我們要多輸入幾個引數。一個引數是中心點的位置座標。 下一個引數是長軸和短軸的長度。橢圓沿逆時針方向旋轉的角度。橢圓弧沿順時針方向起始的角度和結束角度,如果是 0 和 360,就是整個橢圓。檢視 cv2.ellipse() 可以得到更多資訊。下面的例子是在圖片的中心繪製半個橢圓。

import cv2
import numpy as np

# Create a black image
img=np.zeros((512,512,3),np.uint8)

cv2.ellipse(img,(256,256),(100,50),0,0,180,(130,214,183),-1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在圖片上新增文字

要在圖片上繪製文字,你需要設定下列引數:

• 你要繪製的文字

• 你要繪製的位置

• 字型型別(通過檢視 cv2.putText() 的文件找到支援的字型)

• 字型的大小

• 文字的一般屬性如顏色,粗細,線條的型別等。為了更好看一點推薦使用 linetype=cv2.LINE_AA。

在影象上繪製白色的 OpenCV

import cv2
import numpy as np

# Create a black image
img=np.zeros((512,512,3),np.uint8)

font=cv2.FONT_HERSHEY_SIMPLEX

cv2.putText(img,'OpenCV',(10,450),font,4,(255,255,255),cv2.LINE_AA)

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()