這篇介紹OPENCV提供的的基本畫圖工具.主要是可以應用在影像辨識出輪廓或特徵時
圈選或標註之用.
<圖1>
首先使用Numpy 產生一黑底圖矩陣img , 512x512 像素當畫布
程式如下,3為channel (B,G,R) =(0,0,0)
img = np.zeros((512,512,3), np.uint8)
1.畫直線:
OENCV 函式: cv2.line(img,(20,20),(500,500),(255,0,0),5)
*1. 畫在img 圖像
*2. 給定對角兩點(20,20),(500,500)
*3. 給定線條顏色(255,0,0) 為(B,G,R) 所以為一藍色線
*4. 5:為設定的線寬,預設為1 ,值越大線條越粗
2.畫矩形:
OENCV 函式: cv2.rectangle(img,(25,25),(400,400),(0,255,0),4)
*1. 畫在img 圖像
*2. 給定對角兩點(25,25),(400,400)
*3. 給定線條顏色(0,255,0)為(B,G,R) 所以為一綠色線
*4. 4:為設定的線寬,預設為1 ,值越大線條越粗
3.畫圓形:
OENCV 函式: cv2.circle(img,(150,150), 60, (0,150,255), 5)
*1. 畫在img 圖像
*2. 給定中心點(150,150)
*3. 給定半徑60 pixel
*4. 給定線條顏色(0,150,255)為(B,G,R) 所以為一橘色線
*5. 5:為設定的線寬,預設為1 ,值越大線條越粗
4.畫橢圓形:
OENCV 函式: cv2.ellipse(img,(400,425),(100,25),180,0,270,(255,0,255),-1)
*1. 畫在img 圖像
*2. 給定中心點(400,425)
*3. 給定兩個軸大小(100,25)
*4. 180:將整個橢圓旋轉180度
*5. 0,270 :從開始角度0-270結束
*6. 給定線條顏色(255,0,255)為(B,G,R) 所以為一紫色
*7. -1:為填滿之意,預設0,為線條不填滿
5.畫破折線:
OENCV 函式: cv2.polylines(img,[pts],False,(0,0,255),3)
*1. 畫在img 圖像
*2. 給定各點[pts]
*3. False:不接合到起點,True :接合到起點,故為封閉區域
*4. 180:將整個橢圓旋轉180度
*5. 給定顏色(0,0,255)為(B,G,R) 所以為一紅色
*7. 3:為設定的線寬,預設為1 ,值越大線條越粗
6.畫文字:
OENCV 函式: cv2.putText(img,'OpenCV',(10,500), font, 2,(255,255,255),3,cv2.LINE_AA))
*1. 畫在img 圖像
*2. 欲顯示字串:'OpenCV'
*3. 顯示位置(10,500)
*4. font = cv2.FONT_HERSHEY_SIMPLEX,字型樣式
*5. 2:給定字型大小
*6. 給定顏色(255,255,255)為(B,G,R) 所以為一白色
*7. 3:為設定的字型線寬,預設為1 ,值越大線條越粗
*8. cv2.LINE_AA:畫出字型的線型樣式
**.更詳細的參數設定可以參考OPENCV 官網
http://docs.opencv.org/3.1.0/index.html
<Python 完整範例程式>
https://www.facebook.com/arbu00/