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()