二、瞭解OpenCV的繪圖方法2.1 瞭解直線繪圖方法
我們在前兩節中有了解使用OpenCV中的矩形繪製,接下來我們瞭解一下更多的圖形繪製方法。我們在OpenCV中若需要繪製直線需要使用line方法,line方法的原型如下:
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
其中img表示需要在哪一張圖片上進行繪圖pt1表示起始點位置pt2表示終點位置color表示需要繪製的顏色thickness表示需要繪製的線段寬度lineType表示線段的型別,可以為8、 4以及CV_AA shift表示座標點的小數點位我們先建立一張圖片:
import cv2import numpy as npimg=np.zeros((400,400,3), np.uint8)
以上建立了一張400*400的3通道圖片資料,並且將圖片顏色賦予為純黑。我們可以顯示一下:
cv2.imshow("Image", img)cv2.waitKey (0)cv2.destroyAllWindows()
隨後我們使用line方法在當前圖片上進行繪圖。
cv2.line(img,(0,0),(400,400),(255,0,0),2)
以上使用line方法,傳入img表示在img圖片上進行繪圖,繪圖的起始點位置為(0,0),終點位置是(400,400),然後繪製的顏色純白色(255,255,255),線段粗細為2個單位。我們來看一下繪製的效果:
我們可以更改rgb值對線段的顏色進行更改:
cv2.line(img,(0,0),(400,400),(124,252,0),2)
以上改為黃青色,結果如下:
再試試更改繪製的起始座標與終點座標:
cv2.line(img,(200,200),(350,350),(124,252,0),2)
2.2 瞭解矩形繪圖方法
矩形繪圖我們在前兩節有過了瞭解,使用的是rectangle方法。rectangle方法與line方法引數類似,引數都是接收一個圖片、起始繪製座標、終點座標、繪製顏色、繪製線段粗細。程式碼如下:
cv2.rectangle(img,(384,0),(350,350),(0,255,0),3)
以上方法在img圖片上繪製矩形,起始座標是(384,0)、終點座標是(350,350),繪製顏色是(0,255,0),線段粗細為3。結果如下:
2.3 瞭解圓形繪圖方法在opencv中繪製圓形需要使用circle方法,circle方法的引數和直線line方法、矩形rectangle方法所接收的引數有所區別。circle方法的原型如下:
cv2.circle(img, center_coordinates, radius, color, thickness)
circle方法接收img作為圖片引數center_coordinates為圓的中心座標radius是圓形的半徑color表示繪製圓形的顏色thickness表示線段的粗細
程式碼如下:
cv2.circle(img,(200,200),63, (0,0,255),1)
以上程式碼img為需要繪製的圖片,(200,200)為繪製的中心座標,63為繪製的半徑,(0,0,255)為繪製的顏色,1為線段的粗細。
那如何進行形狀的填充呢?只需要將線段的粗細1改為負一就可以將這個原型給填充顏色。
cv2.circle(img,(200,200),63, (0,0,255),-1)
結果如下:
其實我們的矩形把線段改為-1也可以進行填充:
cv2.rectangle(img,(384,0),(350,350),(0,255,0),-1)
我們不僅可以畫圓形也可以畫橢圓,橢圓使用ellipse方法,ellipse原型如下:
cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color [, thickness[, lineType[, shift]]])
image為繪製的影象centerCoordinates為橢圓的中心座標axesLength有兩個變數,包含橢圓長軸和短軸angle為橢圓的旋轉角度startAngle為橢圓弧的起始角度endAngle為橢圓弧的終止角度color為繪製顏色thickness為繪製的線段粗細lineType為邊界型別shift為中心座標中的小數位
程式碼為:
cv2.ellipse(img, (200, 200), (170, 130), 0, 0, 360, (255, 255, 255), 3)
結果為: