Python-OpenCV 筆記7 – 繪圖(Draw)
1、畫直線 – cv2.line()
函數原型:
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- img:需要繪製的圖像
- pt1:直線的起點(x, y)
- pt1:直線的終點(x, y)
- color:線的顏色(x, x, x)
- thickness:線的粗細,
- lineType:線型,cv2.FILLED、cv2.LINE_4、cv2.LINE_8
實例:
cv2.line(img,(0,0),(500,500),(255,0,0),2)
cv2.imshow('畫直線', img)
2、畫矩形 – cv2.rectangle()
函數原型:
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
- pt1:矩形左上角點(x, y)
- pt1:直線右下角點(x, y)
- thickness:寬度大於0,標識邊線寬度;小於0,畫實心矩形
實例:
cv2.rectangle(img,(100,50),(200,150),(0,255,0),3)
cv2.imshow('畫矩形', img)
3、畫圓 – cv2.circle()
函數原型:
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
- center:圓心(x, y)
- radius:半徑 x
- thickness:寬度大於0,標識邊線寬度;小於0,畫實心圓
實例:
cv2.circle(img, (200,200), 50, (0,0,255), -1)
cv2.imshow('畫圓', img)
4、畫橢圓 – cv2.ellipse()
函數原型:
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
- center:橢圓心(x, y)
- axes:橢圓長短半軸長 (l, s)
- angle:橢圓相對於x軸的旋轉角度
- startAngle:橢圓起始角度
- endAngle:橢圓的終止角度
- thickness:寬度大於0,標識邊線寬度;小於0,畫實心橢圓
實例:
cv2.ellipse(img, (256,256), (100,50), 0, 0, 180, 255, -1)
cv2.imshow('畫橢圓', img)
5、畫多邊形 – cv2.polylines()
函數原型:
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
- pts:多邊形的拐點,numpy 數組
- isClosed:多邊形是否要閉合
- thickness:寬度大於0,標識邊線寬度;小於0,畫實心多邊形
實例:
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))
cv2.imshow('畫多邊形', img)
6、畫文字 – cv2.putText()
函數原型:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
- text:文字的字符串
- org:文字放置位置的左下點(x, y)
- fontFace:字體類型
- cv2.FONT_HERSHEY_SIMPLEX:正常尺寸的sans-serif字體
- cv2.FONT_HERSHEY_SPLAIN:小尺寸的sans-serif字體
- cv2.FONT_HERSHEY_COMPLEX:正常尺寸的serif字體
- cv2.FONT_HERSHEY_SCREIPT_SIMPLEX:手寫字體風格
- fontScale:字體的縮放因子
- thickness:寬度大於0,標識邊線寬度;小於0,畫實心矩形
實例:
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA)
cv2.imshow('畫文字', img)