1.繪圖函式所需要的引數
? img:你想要繪制圖形的那幅影像,
? color:形狀的顏色,以 RGB 為例,需要傳入一個元組,例如:(255,0,0)代表藍色,對于灰度圖只需要傳入灰度值,
? thickness:線條的粗細,如果給一個閉合圖形設定為 -1,那么這個圖形就會被填充,默認值是 1.
? linetype:線條的型別,8 連接,抗鋸齒等,默認情況是 8 連接,cv2.LINE_AA為抗鋸齒,這樣看起來會非常平滑,
生成一個慷訓度影像
img=np.zeros((512,512,3),np.uint8)
此代碼就相當于制造一張白紙,接下來的繪圖都將在這張白紙上進行
2.畫直線
引數含義:pt1:起點坐標,pt2:終點坐標
函式:cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
cv2.line(img,(0,0),(511,511),(255,0,0),1)
注意:cv2.polylines() 可以被用來畫很多條線,只需要把想要畫的線放在一個串列中,將這個串列傳給函式就可以了,每條線都會被獨立繪制,這會比用cv2.line() 一條一條的繪制要快一些,
3.畫矩形
引數含義:pt1:左上角坐標,pt2:右下角坐標
函式:cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
cv2.rectangle(img,(0,0),(300,300),(0,255,0),3)
4.畫圓
引數含義:center:中心點坐標, radius:半徑
函式:cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
cv2.circle(img,(300,300),150,(0,0,255),-1)
5.畫橢圓
引數含義:center:中心點坐標,axes:長軸短軸長度,angle:橢圓旋轉角度,start angle:起始角度,endAngle:結束角度
函式:cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
6.畫多邊形
引數含義:pts:各個點的坐標,isClosed:是否閉合(為True則表示閉合)
函式:cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
#np.array:創建一個陣列
pts=np.array([[10,5],[20,30],[70,20],[50,10]])
#轉換成任意行,一列的矩陣(-1表示任意行),
pts=pts.reshape((-1,1,2))
#如果第三個引數是 False,我們得到的多邊形是不閉合的(首尾不相連)
cv2.polylines(img,[pts],True,(0,0,255),1) # 影像,點集,是否閉合,顏色,線條粗細
7.在圖片上添加文字
引數含義:text:要添加的文字,org:位置,fontFace:字體,fontScale:大小,color:顏色
函式:putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
#設定字體
font=cv2.FONT_HERSHEY_SIMPLEX
#引數含義: 要添加的文字,位置,字體,大小,顏色,粗細
cv2.putText(img,'openCV',(10,500),font,4,(255,255,255),2)
ps:文章中的筆記都是根據OPENCV-PYTHON中文教程這本書的內容整理出來的,如果對這本書感興趣,可以點擊下方鏈接:https://pan.baidu.com/s/1UlWFgHmTuaj8TV55qpgHtw 提取碼:f64k
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/231583.html
標籤:python
上一篇:Java撰寫簡單計算器--實作篇
