關於繪圖我們可能涉及到的函數有:cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等。
一.畫線
運行的效果:
說明:
np.zeros((512,512,3),np.uint8)
返回來一個給定形狀和類型的用0填充的數組,這裡其實就是生成了一個空彩色圖像。
圖像的一個像素點有1或者3個值,對灰度圖像有一個灰度值,對彩色圖像有3個值組成一個像素值,他們表現出不同的顏色。
生成一個空灰度圖像:np.zeros((512,512),np.uint8)
2. cv2.line(img,(0,0),(260,260),(255,0,0),5)
有五個參數,圖片名稱、起點座標、終點座標、顏色、線寬
函數原型 cv2.line(img,Point pt1,Point pt2,color,thickness=1,line_type=8 shift=0)
Point pt1,Point pt2 線段的兩端的兩個座標點 (0,0),(260,260)
(255,0,0) 線的顏色,這裡是使用的rgb圖像,故是一個有3個元素的數組,那要是灰度圖就是0~255一個值。
3.cv2.namedWindow('image',cv2.WINDOW_NORMAL)
創建一個窗口
4.cv2.resizeWindow('image',1000,1000)
圖形的縮放
5.最後一個參數5,表示的是線的粗細。不寫的話默認是1
二.畫矩形
運行的效果:
說明:
1.cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)
畫矩形的函數
五個參數,圖片名稱、兩個對角點座標、顏色數組、線寬
與直線只有一點不同就是輸入的兩座標點不是起點和終點而是對角線的起點和終點
三.畫圓
運行效果:
說明:
1.cv2.circle(img,(425,63),63,(0,0,255),-1)
畫圓的函數
五個參數,圖片名稱、圓心座標、半徑、顏色數組、線寬
(425,63),63 圓心和半徑
(0,0,255)顏色
-1為向內填充/圓心/半徑,要是不想填充,不用寫,可以給一個設置畫筆粗細的參數
四.畫橢圓
運行效果:
說明:
1.cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
畫橢圓的函數
有八個參數。圖像、中心座標、長軸短軸、旋轉角度、顯示的部分、顏色數組、線寬
中心座標(256,256)
長軸短軸是(100,50)指長軸長100,短軸長50
旋轉角度是指橢圓逆時針旋轉多少度,這裡是0
顯示的部分是用極座標中的角度來刻畫的一段區域,從長軸順時針開始數,第一個是起始角度,設為0;第二個是終點角度,設為360.這兩個參數的作用是隻顯示橢圓在長軸開始0到360度之內的部分
五..畫多邊形
運行效果:
說明:
1.cv2.polylines(img,[pts],True,(0,255,255))
畫多邊形的函數
polylines有五個參數,圖像、頂點集、是否閉合、顏色數組、線寬
True和False代表多邊形是否閉合,True是閉合,False是有一條邊空出來,不閉合
六.在圖片上添加文字
運行效果:
說明:
1.cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)
八個參數,圖片、字符串、座標、字體、字號、顏色數組、線寬、線條種類
font = cv2.FONT_HERSHEY_SIMPLEX 使用默認的字體,具體線寬、線條種類可以自己去百度下,多的很。
閱讀更多 小5嵌入式 的文章