Python-OpenCV 筆記7 -- 繪圖(Draw)

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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章