【opencv系列04】OpenCV4.X图形绘制
點擊上方“AI搞事情”關注我們
一、 基本圖形繪制
1. 基本函數與參數
cv2.line(): 線
cv2.circle(): 圓
cv2.rectangle(): 矩形
cv2.ellipse(): 橢圓
cv2.putText(): 文字
img:需要繪制形狀的圖像。
color:顏色的形式,對于BGR,將作為元組傳遞比如(255,0,0)表示藍色;對于灰度圖,只需要傳遞標量值。
thickness: 線或圓形等圖像的厚度,如果對閉合圖像像圓形傳遞“-1”,它將填充形狀, 默認厚度 = 1。
lineType:線的類型,默認情況下為8連接,cv2.LINE_AA 是適合曲線的抗鋸齒線。
?
2. 畫線
line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
pt1:直線起點
pt2:直線終點
創建一個白色圖像,并在其上從左上角到右下角繪制一條藍線。
代碼
import numpy as np import cv2# 創建黑底圖像(像素值【0,255】,白色為255) img = np.ones((512, 512, 3), np.uint8) * 255# 繪制寬度為 5 px 的藍線(B,G,R) cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5) cv2.imshow('line', img) cv2.waitKey()?
3. 矩形
rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
pt1:矩形左上角坐標
pt2:矩形右下角坐標
在圖像的右上角繪制一個綠色矩形。
代碼
import numpy as np import cv2# Create a black image img = np.zeros((512, 512, 3), np.uint8)cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)cv2.imshow('rectangle', img) cv2.waitKey()?
4. 畫圓
circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
center:圓心位置
radius:半徑
在圖像的右上角繪制一個綠色矩形。
代碼
import numpy as np import cv2# Create a black image img = np.zeros((512, 512, 3), np.uint8)cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3) cv2.circle(img, (447, 63), 63, (0, 0, 255), -1)cv2.imshow('circle',img) cv2.waitKey()?
5. 橢圓
ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
center:中心位置
axes:軸長度(長軸長度,短軸長度)
angle:橢圓在逆時針方向上的旋轉角度
startAngle:主軸順時針方向測量的橢圓弧的起點
endAngle:主軸順時針方向測量的橢圓弧的終點
在圖像的右上角繪制一個綠色矩形。
代碼
import numpy as np import cv2# Create a black image img = np.zeros((512, 512, 3), np.uint8)cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1)cv2.imshow('ellipse', img) cv2.waitKey()?
6. 多邊形
polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
要繪制多邊形,首先需要頂點坐標.將這些點轉換為ROWSx1x2形狀的數組,其中ROWS是頂點數,它應該是int32類型.
繪制一個帶有四個黃色頂點的小多邊形。
代碼
import numpy as np import cv2# Create a black image img = np.zeros((512, 512, 3), np.uint8)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('polylines',img) cv2.waitKey()Note:
如果第三個參數為False,您將獲得連接所有點的折線,而不是閉合形狀。
cv2.polylines() 可用于繪制多條線,只需創建要繪制的所有行的列表并將其傳遞給函數, 所有線條都將單獨繪制,繪制一組行比為每行調用cv2.line() 要好得多,速度更快。
?
7. 添加文字
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
要將文本放入圖像中,您需要指定以下內容。
text:要寫入的文本數據
org:您想要放置它的位置坐標(即數據開始的左下角)。
fontFace:字體類型(檢查cv2.putText() 文檔以獲取支持的字體)
fontScale:字體比例(指定字體大小)
常規的東西,如顏色,粗細,線型等。為了更好看,建議使用lineType = cv.LINE_AA。
圖像上寫白色的opencv幾個字母。
代碼
import numpy as np import cv2# Create a black image img = np.zeros((512, 512, 3), np.uint8)font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(img, 'OpenCV', (10, 500), font, 4, (255, 255, 255), 2 , cv2.LINE_AA)cv2.imshow('text', img) cv2.waitKey()長按二維碼關注我們
有趣的靈魂在等你
總結
以上是生活随笔為你收集整理的【opencv系列04】OpenCV4.X图形绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【opencv系列03】OpenCV4.
- 下一篇: Scrapy爬取姓名大全,看看那个名字最