Python OpenCV簡單的繪圖函數(shù)使用教程
1、畫直線的函數(shù)是cv2.line
cv2.line函數(shù)語法:
cv2.line(img,start_point,end_point,color,thickness=0)
cv2.line函數(shù)參數(shù)解釋:
img:需要畫的圖像
start_point:直線的開頭,必須是一個(gè)元組類型
end_point:直線的結(jié)尾,必須是一個(gè)元組類型
color:直線的顏色,必須是一個(gè)元組類型
thickness:直線的寬度
代碼示例:
cv2.line(img,(0,0),(100,100),(0,255,0),3)
實(shí)際操作:
import cv2
import numpy as np
#讀取一張畫布
img=cv2.imread('1.jpg')
#在上面畫線
cv2.line(img,(0,0),(100,100),(0,255,0),3)
#將畫完的圖像存到“.img”文件以后再顯示出來
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
演示結(jié)果:

2、畫矩形的函數(shù)是cv2.rectangle
cv2.rectangle函數(shù)語法:
cv2.rectangle(img,point1,point2,color,thickness=0)
cv2.rectangle函數(shù)的參數(shù)解釋:
img:需要畫的圖像
point1:矩形左上角點(diǎn)的坐標(biāo),必須是一個(gè)元組類型
point2:矩形右下角點(diǎn)的坐標(biāo),必須是一個(gè)元組類型
color:線的顏色,必須是一個(gè)元組類型
thickness:線的寬度
說明:這個(gè)函數(shù)每調(diào)用一次,就會(huì)產(chǎn)生一個(gè)矩形,多次調(diào)用就會(huì)產(chǎn)生多個(gè)矩形。
示例代碼:
cv2.rectangle(img.(0,0),(128,128),(0,255,0),3)
實(shí)際操作:
import cv2
import numpy as np
#讀取一張畫布
img=cv2.imread('1.jpg')
#在上面畫線
cv2.rectangle(img,(0,0),(128,128),(0,255,0),3)
#將畫完的圖像存到“.img”文件以后再顯示出來
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
結(jié)果演示:

上面的兩個(gè)實(shí)例中,顏色都是我們固定好的,那么我們想要一個(gè)隨機(jī)顏色的圖形,該怎么做呢?
import cv2
import numpy as np
img = np.zeros((512,512,3),np.uint8)#創(chuàng)建一個(gè)黑色的畫布,大小為512*512像素,通道數(shù)為3
flag=1#跳出外層循環(huán)
while flag:
for a in range(0,256):
cv2.rectangle(img,(350,0), (500,128),(a,255-a,a),3)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',(1000,1000))#調(diào)整屏幕大小
cv2.imshow('image',img)
if cv2.waitKey(1)==ord('q'):
flag-=1#跳出while循環(huán)
break#跳出for循環(huán)
cv2.destroyAllWindows()
漸變圖:

3、畫圓函數(shù)是cv2.circle
cv2.circle的語法:
cv2.circle(img,center,R,color,thickness=0)
cv2.circle函數(shù)的參數(shù)解釋
img:要畫的圖像
center:圓心坐標(biāo),必須是一個(gè)元組類型
R:圓的半徑
color:顏色,必須是一個(gè)元組類型
thickness:線寬
示例代碼:
cv2.circle(img,(100,100),100,(0,255,2),-1) #畫圓的時(shí)候,-1表示向內(nèi)填充顏色
實(shí)際操作:
import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.circle(img,(100,100),100,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
結(jié)果演示:

4、畫橢圓的函數(shù)是cv2.elipes
cv2.elipes函數(shù)的語法:
cv2.ellipes(img,center,(a,b),direction,angle_start,angle_end,color,thickness)
cv2.elipes函數(shù)的參數(shù)解釋:
img:要畫的圖像
center:橢圓的中心位置
(a,b):長軸和短軸
direction:順時(shí)針方向的旋轉(zhuǎn)角度
angle_start:畫橢圓開始的角度
angle_end:畫橢圓結(jié)束的角度
color;線的顏色
thickness:線的寬度
示例代碼:
cv2.ellipese(img,(256,256),(100,50),0,0,360,(0,255,0),-1)
實(shí)際操作:
import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),0,0,360,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
換個(gè)角度:(0,270)
import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),0,0,270,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在順時(shí)針旋轉(zhuǎn)30:
(direction = 30)
import cv2
import numpy as np
img = cv2.imread('1.jpg')
img=cv2.ellipse(img,(100,100),(100,80),30,0,270,(0,255,0),-1)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
5、畫多邊形的函數(shù)是cv2.polylines
cv2.polylines語法:
cv2.polylines(img,pts,isClosed,color,thickness=0)
cv2.polylines函數(shù)參數(shù)解釋:
img:要畫的圖像
pts:點(diǎn)的集合,以列表的形式填入
isClosed:多邊形是否閉合,如果為False則不閉合,如果為True則閉合。
color:線的顏色
thickness:線的寬度
代碼示例:
import cv2
import numpy as np
img =np.zeros((256,256,3),np.uint8)
pts=np.array([[10,3],[48,19],[60,3],[98,19]],np.int32)#注意格式必須是int32
pts=pts.reshape((-1,1,2))
#reshape的第一個(gè)參數(shù)為-1,表明這一維度的長度是根據(jù)后面的維度計(jì)算出來的
cv2.polylines(img,[pts],True,(0,255,255),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
結(jié)果顯示:

6、添加文字的函數(shù)是cv2.putText
cv2.putText函數(shù)語法:
cv2.putText(img,text,org,fontFace,fontScale,color,thickness,lineType)
cv2.putText函數(shù)參數(shù)解釋
img:要添加文字的背景圖
text:添加的文字
org:添加文字的位置
fontFace:字體
fontScale:字號大小
color:字的顏色
thickness:線條的寬度
lineType:線條的種類
示例代碼:
cv2.putText(img,'Python+OpenCV',(10,40),font,1,(255,255,255),2,cv2.LINE_AA)
實(shí)際操作:
import cv2
import numpy as np
img =np.zeros((256,256,3),np.uint8)
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,"OpneCV",(10,40),font,1,(255,255,255),2,cv2.LINE_AA)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',750,750)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上就是Python OpenCV簡單的繪圖函數(shù)使用教程的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV繪圖函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python使用for實(shí)現(xiàn)無限循環(huán)的多種方式匯總
這篇文章主要介紹了Python使用for實(shí)現(xiàn)無限循環(huán)的多種方式匯總,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記(1)
這篇文章主要為大家詳細(xì)介紹了python網(wǎng)絡(luò)爬蟲學(xué)習(xí)筆記的第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
使用Python腳本和ADB命令實(shí)現(xiàn)卸載App
這篇文章主要介紹了使用Python腳本和ADB命令實(shí)現(xiàn)卸載App的實(shí)現(xiàn)方法,文中給出了完整的示例代碼,相信對大家具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。2017-02-02
詳談在flask中使用jsonify和json.dumps的區(qū)別
下面小編就為大家分享一篇詳談在flask中使用jsonify和json.dumps的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
pandas創(chuàng)建新Dataframe并添加多行的實(shí)例
下面小編就為大家分享一篇pandas創(chuàng)建新Dataframe并添加多行的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python中多個(gè)數(shù)組行合并及列合并的方法總結(jié)
下面小編就為大家分享一篇Python中多個(gè)數(shù)組行合并及列合并的方法總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04

