摘要:代碼畫圓圓心位置半徑應(yīng)用在上面繪制的矩形內(nèi)繪制一個(gè)圓。字體類型檢查文檔以獲取支持的字體字體比例指定字體大小常規(guī)的東西,如顏色,粗細(xì),線型等。應(yīng)用我們將在圖像上寫白色的幾個(gè)字母代碼
Drawing Functions in OpenCV
學(xué)習(xí)目標(biāo)函數(shù)cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putText() etc
參數(shù)介紹img:需要繪制形狀的圖像
color:顏色的形式. 對(duì)于BGR,將作為元組傳遞比如(255,0,0)表示藍(lán)色.對(duì)于灰度圖,只需要傳遞標(biāo)量值.
thickness:線或圓形等圖像的厚度.如果對(duì)閉合圖像像圓形傳遞“-1”,它將填充形狀. 默認(rèn)厚度 = 1.
lineType:線的類型.默認(rèn)情況下,它是8連接的.cv2.LINE_AA 是適合曲線的抗鋸齒線.
1畫線cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
pt1:直線起點(diǎn)
pt2:直線終點(diǎn)
應(yīng)用我們將創(chuàng)建一個(gè)黑色圖像,并在其上從左上角到右下角繪制一條藍(lán)線。
代碼 :
import numpy as np import cv2 # Create a black image img = np.zeros((512,512,3), np.uint8) # Draw a diagonal blue line with thickness of 5 px cv2.line(img,(0,0),(511,511),(255,0,0),5) cv2.imshow("line",img) cv2.waitKey()2繪制矩形
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
pt1:矩形左上角坐標(biāo)
pt2:矩形右下角坐標(biāo)
應(yīng)用在圖像的右上角繪制一個(gè)綠色矩形。
代碼 :
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("line",img) cv2.waitKey()3畫圓
cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])
center:圓心位置
radius:半徑
應(yīng)用在上面繪制的矩形內(nèi)繪制一個(gè)圓。
代碼 :
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("line",img) cv2.waitKey()4繪制橢圓
cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])
center:中心位置
axes:軸長(zhǎng)度(長(zhǎng)軸長(zhǎng)度,短軸長(zhǎng)度)
angle:橢圓在逆時(shí)針方向上的旋轉(zhuǎn)角度
startAngle:主軸順時(shí)針方向測(cè)量的橢圓弧的起點(diǎn)
endAngle:主軸順時(shí)針方向測(cè)量的橢圓弧的終點(diǎn)
應(yīng)用在圖像的中心繪制一個(gè)半橢圓。
代碼 :
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("line",img) cv2.waitKey()5繪制多邊形
cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
要繪制多邊形,首先需要頂點(diǎn)坐標(biāo).將這些點(diǎn)轉(zhuǎn)換為ROWSx1x2形狀的數(shù)組,其中ROWS是頂點(diǎn)數(shù),它應(yīng)該是int32類型.
應(yīng)用繪制一個(gè)帶有四個(gè)黃色頂點(diǎn)的小多邊形.
代碼 :
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("line",img) cv2.waitKey()
Note:
如果第三個(gè)參數(shù)為False,您將獲得連接所有點(diǎn)的折線,而不是閉合形狀.
cv2.polylines()可用于繪制多條線.只需創(chuàng)建要繪制的所有行的列表并將其傳遞給函數(shù), 所有線條都將多帶帶繪制.繪制一組行比為每行調(diào)用cv2.line()要好得多,速度更快.
向圖像添加文字:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
要將文本放入圖像中,您需要指定以下內(nèi)容。
text:要寫入的文本數(shù)據(jù)
org:您想要放置它的位置坐標(biāo)(即數(shù)據(jù)開始的左下角)。
fontFace:字體類型(檢查cv2.putText()文檔以獲取支持的字體)
fontScale:字體比例(指定字體大?。?/p>
?常規(guī)的東西,如顏色,粗細(xì),線型等。為了更好看,建議使用lineType = cv.LINE_AA。
應(yīng)用我們將在圖像上寫白色的opencv幾個(gè)字母.
代碼 :
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("show",img) cv2.waitKey()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41964.html
摘要:游戲開發(fā)實(shí)戰(zhàn)主要講解使用來(lái)開發(fā)和設(shè)計(jì)各類常見游戲的思路和技巧,在介紹相關(guān)特性的同時(shí),還通過游戲開發(fā)實(shí)例深入剖析了其內(nèi)在原理,讓讀者不僅知其然,而且知其所以然。HTML5 Canvas游戲開發(fā)實(shí)戰(zhàn)主要講解使用HTML5 Canvas來(lái)開發(fā)和設(shè)計(jì)各類常見游戲的思路和技巧,在介紹HTML5 Canvas相關(guān)特性的同時(shí),還通過游戲開發(fā)實(shí)例深入剖析了其內(nèi)在原理,讓讀者不僅知其然,而且知其所以然。在本書...
閱讀 2067·2021-11-23 09:51
閱讀 2212·2021-09-29 09:34
閱讀 3703·2021-09-22 15:50
閱讀 3563·2021-09-22 15:23
閱讀 2580·2019-08-30 15:55
閱讀 706·2019-08-30 15:53
閱讀 3076·2019-08-29 17:09
閱讀 2632·2019-08-29 13:57