Python OpenCV簡(jiǎn)單的繪圖函數(shù)使用教程
1、畫直線的函數(shù)是cv2.line
cv2.line函數(shù)語(yǔ)法:
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”文件以后再顯示出來(lái) cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows()
演示結(jié)果:
2、畫矩形的函數(shù)是cv2.rectangle
cv2.rectangle函數(shù)語(yǔ)法:
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:線的寬度
說(shuō)明:這個(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”文件以后再顯示出來(lái) 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的語(yǔ)法:
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ù)的語(yǔ)法:
cv2.ellipes(img,center,(a,b),direction,angle_start,angle_end,color,thickness)
cv2.elipes函數(shù)的參數(shù)解釋:
img:要畫的圖像
center:橢圓的中心位置
(a,b):長(zhǎng)軸和短軸
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語(yǔ)法:
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,表明這一維度的長(zhǎng)度是根據(jù)后面的維度計(jì)算出來(lái)的 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ù)語(yǔ)法:
cv2.putText(img,text,org,fontFace,fontScale,color,thickness,lineType)
cv2.putText函數(shù)參數(shù)解釋
img:要添加文字的背景圖
text:添加的文字
org:添加文字的位置
fontFace:字體
fontScale:字號(hào)大小
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簡(jiǎn)單的繪圖函數(shù)使用教程的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV繪圖函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
對(duì)python中raw_input()和input()的用法詳解
下面小編就為大家分享一篇對(duì)python中raw_input()和input()的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別
這篇文章主要介紹了Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03python 實(shí)現(xiàn)在無(wú)序數(shù)組中找到中位數(shù)方法
這篇文章主要介紹了python 實(shí)現(xiàn)在無(wú)序數(shù)組中找到中位數(shù)方法,具有很好對(duì)參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Python基礎(chǔ) 括號(hào)()[]{}的詳解
這篇文章主要介紹了Python基礎(chǔ) 括號(hào)()、[]、{},下面文章將圍繞這三個(gè)括號(hào)的相關(guān)解析展開內(nèi)容,需要的朋友可以參考一下,洗碗粉對(duì)你有所幫助2021-11-11在matplotlib的圖中設(shè)置中文標(biāo)簽的方法
今天小編就為大家分享一篇在matplotlib的圖中設(shè)置中文標(biāo)簽的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Python中的sorted函數(shù)應(yīng)用及文件操作詳解
這篇文章主要介紹了Python中的sorted函數(shù)應(yīng)用及文件操作詳解,python只能將字符串寫入到文本文件,要將數(shù)值數(shù)據(jù)存儲(chǔ)到文本本件中,必須先試用函數(shù)str()將其轉(zhuǎn)換為字符串格式,需要的朋友可以參考下2023-12-12python通過(guò)urllib2獲取帶有中文參數(shù)url內(nèi)容的方法
這篇文章主要介紹了python通過(guò)urllib2獲取帶有中文參數(shù)url內(nèi)容的方法,涉及Python中文編碼的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03python 如何利用chinese_calendar 獲取上一個(gè)工作日日期
這篇文章主要介紹了python 利用chinese_calendar 獲取上一個(gè)工作日日期,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03