OpenCV 中的繪圖函數
目標
- 學習使用 OpenCV 繪製不同幾何圖形
- 你將會學習到這些函數:cv2.line(), ,cv2.circle(), ,cv2.rectangle() ,cv2.ellipse() ,cv2.putText() 等
cv2.line 畫線
cv2.line(img, pt1, pt2, color, thinckness)
第一個參數 img:要劃的線所在的圖像;
第二個參數 pt1:直線起點
第三個參數 pt2:直線終點
第四個參數 color:顏色
第五個參數 thickness=1:線條粗細
cv.rectangle 畫矩形
cv2.rectangle(img, pt1, pt2, color, thinckness)
第一個參數 img:要劃的線所在的圖像;
第二個參數 pt1:左上角起點
第三個參數 pt2:右下角終點
第四個參數 color:顏色
第五個參數 thickness=1:線條粗細
cv.circle 畫圓
cv2.circle(img, pt1, length, color, thinckness)
第一個參數 img:要劃的線所在的圖像;
第二個參數 pt1:圓心
第三個參數 length:半徑
第四個參數 color:顏色
第五個參數 thickness=1:線條粗細
cv.ellipse 畫橢圓
畫橢圓比較複雜,我們要多輸入幾個參數。
第一個參數 img:要劃的線所在的圖像;
第二個參數 是中心點的位置座標。
第三個參數 是長軸和短軸的長度。
第四 五個參數 橢圓沿逆時針方向旋轉的角度。橢圓弧演順時針方向起始的角度和結束角度,如果是 0 和 360,就是整個橢圓。
下面的例子是在圖片的中心繪製半個橢圓。
cv.polylines
pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts=pts.reshape((-1,1,2))
這裏 reshape 的第一個參數爲 -1, 表明這一維的長度是根據後面的維度的計算出來的。
在圖片上添加文字
設置字體格式
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, text, pt1, font, size, color = (255,255,255), 線條類型)
代碼實現
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
img = np.zeros((800, 800, 3), np.uint8)
pt1 = (100, 100)
pt2 = (200, 200)
color = (255, 0, 0)
length = 50
thinckness = 3
cv2.line(img, pt1, pt2, color, thinckness)
cv2.rectangle(img, pt1, pt2, color, thinckness)
cv2.circle(img, pt1, length, color, thinckness)
cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
pts=np.array([[100,50],[200,300],[700,200],[500,100]], np.int32)
pts=pts.reshape((-1,4,2))
cv2.polylines(img, pts, isClosed = True, color = color)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)
cv2.imshow('line', img)
plt.imshow(img)
cv2.waitKey(0)
cv2.destroyAllWindows()