一些常見的參數,如下所示:
- img:您要繪制形狀的圖像
- color:形狀的顏色。對於BGR,將其作為元組傳遞,例如:(255,0,0)對於藍色。對於灰度,只需傳遞標量值即可。
- 厚度:線或圓等的粗細。如果對閉合圖形(如圓)傳遞
-1
,它將填充形狀。默認厚度= 1 - lineType:線的類型,是否為8連接線,抗鋸齒線等。默認情況下,為8連接線。cv.LINE_AA給出了抗鋸齒的線條,看起來非常適合曲線。
要繪制多邊形,首先需要頂點的坐標。將這些點組成形狀為ROWSx1x2
的數組,其中ROWS
是頂點數,並且其類型應為int32。在這里,我們繪制了一個帶有四個頂點的黃色小多邊形。
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) pts = pts.reshape((-1,1,2)) cv.polylines(img,[pts],True,(0,255,255))
注意 如果第三個參數為False,您將獲得一條連接所有點的折線,而不是閉合形狀。cv.polylines()可用於繪制多條線。只需創建要繪制的所有線條的列表,然后將其傳遞給函數即可。所有線條將單獨繪制。與為每條線調用cv.line相比,繪制一組線是一種更好,更快的方法。
向圖像添加文本:
要將文本放入圖像中,需要指定以下內容。 - 您要寫入的文字數據 - 您要放置它的位置坐標(即數據開始的左下角)。 - 字體類型(檢查cv.putText文檔以獲取受支持的字體) - 字體比例(指定字體大小) - 常規的內容,例如顏色,厚度,線條類型等。為了獲得更好的外觀,建議使用lineType = cv.LINE_AA。
我們將在白色圖像上寫入OpenCV。
font = cv.FONT_HERSHEY_SIMPLEX cv.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA)
綜合例子:
import numpy as np import cv2 as cv # 創建黑色的圖像 img = np.zeros((512,512,3), np.uint8)
# 繪制一條厚度為5的藍色對角線 cv.line(img,(0,0),(511,511),(255,0,0),5)
# 繪制厚度為3的矩形框,傳入左上角和右下角坐標 cv.rectangle(img,(384,0),(510,128),(0,255,0),3)
# 繪制一個圓,傳入中心點坐標以及半徑 cv.circle(img,(447,63), 63, (0,0,255), -1)
#要繪制橢圓,我們需要傳遞幾個參數。一個參數是中心位置(x,y)。 #下一個參數是軸長度(長軸長度,短軸長度)。 #angle是橢圓沿逆時針方向旋轉的角度。 #startAngle和endAngle表示從主軸沿順時針方向測量的橢圓弧的開始和結束。即給出0和360給出完整的橢圓。 #有關更多詳細信息,請參閱cv.ellipse的文檔。 cv.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)) cv.polylines(img,[pts],True,(0,255,255))
font = cv.FONT_HERSHEY_SIMPLEX cv.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA) from google.colab.patches import cv2_imshow cv2_imshow(img)
結果:
參考:http://woshicver.com/ThirdSection/2_3_OpenCV%E4%B8%AD%E7%9A%84%E7%BB%98%E5%9B%BE%E5%8A%9F%E8%83%BD/#opencv