這篇文章主要介紹了python opencv如何實(shí)現(xiàn)圖片繪制,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
點(diǎn)和圓 :
circle(img,center,radius,color,thickness=None,lineType=None,shift=None)。各參數(shù)意義及作用如下。
- img:待畫圓所在的圖像。
- center:待畫圓的圓心坐標(biāo)。
- radius:待畫圓的半徑。
- color:待畫圓的邊框顏色,顏色格式為bgr格式。就是通道值
- thickness:待畫圓的邊框?qū)挾龋龜?shù)表示邊框?qū)挾龋?fù)數(shù)表示填充圓形。
- lineType:圓邊框線型,可為 0,4,8
- shift:圓心坐標(biāo)和半徑的小數(shù)點(diǎn)位數(shù)
畫點(diǎn)實(shí)際上就是畫半徑很小的實(shí)心圓
1
2
3
4
5
6
|
import cv2 img = cv2.imread( "500x400.jpg" ) img1 = cv2.circle(img,( 60 , 60 ), 30 ,( 0 , 0 , 255 ), - 1 ) #畫一個(gè)紅色實(shí)心圓 img1 = cv2.circle(img1,( 200 , 200 ), 50 ,( 255 , 0 , 0 ), 3 ) #畫一個(gè)藍(lán)邊框的圓 cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
注意:在img和img1上同時(shí)畫
效果圖:
畫線 :
1
2
3
4
5
6
7
8
|
import cv2 img = cv2.imread( "500x400.jpg" ) img1 = cv2.line(img,( 10 , 10 ),( 200 , 200 ),( 0 , 255 , 0 ), 3 ) #直線 #參數(shù)2 起點(diǎn)坐標(biāo);參數(shù)3 終點(diǎn)坐標(biāo);參數(shù)4 顏色;參數(shù)5 線條寬度 cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
畫矩形:
1
2
3
4
5
6
|
import cv2 img = cv2.imread( "500x400.jpg" ) img1 = cv2.rectangle(img,( 10 , 10 ),( 30 , 40 ),( 255 , 0 , 0 ), 2 ) #畫矩形 #參數(shù)2 左上角坐標(biāo);參數(shù)3 右下角坐標(biāo);參數(shù)4 顏色;參數(shù)5 線條寬度 cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
橢圓:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import cv2 img = cv2.imread( "500x400.jpg" ) img1 = cv2.ellipse(img,( 256 , 256 ),( 100 , 50 ), 0 , 30 , 180 ,( 255 , 0 , 0 ), - 1 ) # 畫橢圓 #參數(shù)2 橢圓中心 #第三個(gè)參數(shù) 橢圓的長(zhǎng)短軸的長(zhǎng)度 #第四個(gè)參數(shù) 整個(gè)橢圓的偏轉(zhuǎn)角度(順時(shí)針) #第五個(gè)參數(shù) 圓弧起始角的角度 #第六個(gè)參數(shù) 圓弧終結(jié)角的角度 # 圓弧角度->x軸方向?yàn)?,逆時(shí)針方向?yàn)檎?/code> #第七個(gè)參數(shù) color 線條的顏色 #第八個(gè)參數(shù) 線條的粗細(xì)程度,如果是負(fù)數(shù)表示填充 #第九個(gè)參數(shù) line_type 線條的類型 ??? cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
多邊形:
畫多邊形——需要指定每個(gè)頂點(diǎn)的坐標(biāo)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import cv2 import numpy as np img = cv2.imread( "500x400.jpg" ) points = np.array([[ 150 , 50 ],[ 140 , 140 ],[ 200 , 170 ],[ 250 , 250 ],[ 150 , 50 ]],np.int32) #多邊形各頂點(diǎn)坐標(biāo) #數(shù)據(jù)類型必須是np.int32 points = points.reshape( - 1 , 1 , 2 ) img1 = cv2.polylines(img,[points], True ,( 0 , 0 , 255 ), 3 ) #畫多邊形 #參數(shù)2 各頂點(diǎn) #參數(shù)3 True表示封閉,F(xiàn)alse表示不封閉 #參數(shù)4 顏色 #參數(shù)5 線條粗細(xì) cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
添加文字 :
1
2
3
4
5
6
7
8
9
10
11
|
import cv2 import numpy as np img = cv2.imread( "500x400.jpg" ) font = cv2.FONT_HERSHEY_SIMPLEX font = cv2.FONT_HERSHEY_DUPLEX img1 = cv2.putText(img, 'wo is liming' ,( 80 , 90 ), font, 2 ,( 255 , 255 , 255 ), 3 ) #畫文字 #參數(shù)3 位置 #參數(shù)5 字體大小 #參數(shù)7 線型 cv2.imwrite( "linsi.jpg" ,img1) cv2.waitKey( 0 ) |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/liming19680104/p/12205389.html