python绘图函数教程_OpenCV中的绘图函数
使用工具Python3.5,
使用庫numpy;opencv
涉及的函數(shù):cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等
需要設(shè)置的參數(shù):
img 你想要繪制的圖形的那副圖像
color 形狀的顏色,以RGB為例,需要傳入的元組,例(255,0,0)代表藍(lán)色,對(duì)于灰度圖只需傳入灰度值
thickness 線條的粗細(xì),如果給一個(gè)閉合圖形設(shè)置為-1,那么這個(gè)圖形就會(huì)被填充,默認(rèn)值為1
linetype 線條的類型,8連接,抗鋸齒等。默認(rèn)是8連接。cv2.LINE_AA為抗鋸齒
1.畫線
需要告訴函數(shù)這條線的起點(diǎn)和終點(diǎ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),(260,260),(255,0,0),5)
#為了演示,建窗口顯示出來
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
2.畫矩形
需要告訴函數(shù)左上角頂點(diǎn)和右下角頂點(diǎn)的坐標(biāo)
~~~
import numpy as np
import cv2
#Create a black image
img = np.zeros((512,512,3),np.uint8)
cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
3.畫圓
需要指定圓心坐標(biāo)和半徑大小,可以在上面矩形中畫個(gè)圓
~~~
import numpy as np
import cv2
#Create a black image
img = np.zeros((512,512,3),np.uint8)
cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)#矩形
cv2.circle(img,(425,63),63,(0,0,255),-1)#圓,-1為向內(nèi)填充
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
4.畫橢圓
一個(gè)參數(shù)是中心點(diǎn)的位置坐標(biāo)。 下一個(gè)參數(shù)是和短的度。橢圓沿時(shí)方向旋的度。橢圓弧演 時(shí)方向始的度和結(jié)束度如果是 0 很 360就是整個(gè)橢圓。查看 cv2.ellipse() 可以得到更多信息。
~~~
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,360,255,-1)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
5.畫多邊形
需要指定每個(gè)頂點(diǎn)的坐標(biāo),構(gòu)建一個(gè)大小相等于行數(shù)X1X2的數(shù)組,行數(shù)就是點(diǎn)的數(shù)目,這個(gè)數(shù)組必須為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))
#這里reshape的第一個(gè)參數(shù)為-1,表明這一維度的長(zhǎng)度是根據(jù)后面的維度計(jì)算出來的
cv2.polylines(img,[pts],True,(0,255,255))
#注意第三個(gè)參數(shù)若是False,我們得到的是不閉合的線
#為了演示,建窗口顯示出來
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
cv2.polylines() 可以用來畫很多條線。只把想畫的線放在一 個(gè)列中將個(gè)列傳給函數(shù)就可以了。每條線會(huì)獨(dú)立繪制。會(huì)比用 cv2.line() 一條一條的繪制快一些。
6.在圖片上添加文字
需要設(shè)置,文字內(nèi)容,繪制的位置,字體類型、大小、顏色、粗細(xì)、類型等,這里推薦linetype=cv2.LINE_AA
~~~
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.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.resizeWindow('image',1000,1000)#定義frame的大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
~~~
7.顯示結(jié)果可以用以下代碼
~~~
winname='example'
cv2.namedWindow(winname)
cv2.imshow(winname,img)
cv2.waitKey(0)
cv2.destroyAllWindow(winname)
~~~
總結(jié)
以上是生活随笔為你收集整理的python绘图函数教程_OpenCV中的绘图函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 装饰器有哪些_python
- 下一篇: pythonweb开发面试_python