这篇文章主要介绍了python opencv如何实现图片绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
点和圆 :
circle(img,center,radius,color,thickness=None,lineType=None,shift=None)。各参数意义及作用如下。
- img:待画圆所在的图像。
- center:待画圆的圆心坐标。
- radius:待画圆的半径。
- color:待画圆的边框颜色,颜色格式为bgr格式。就是通道值
- thickness:待画圆的边框宽度,正数表示边框宽度,负数表示填充圆形。
- lineType:圆边框线型,可为 0,4,8
- shift:圆心坐标和半径的小数点位数
画点实际上就是画半径很小的实心圆
1
2
3
4
5
6
|
import cv2
img = cv2.imread( "500x400.jpg" )
img1 = cv2.circle(img,( 60 , 60 ), 30 ,( 0 , 0 , 255 ), - 1 ) #画一个红色实心圆
img1 = cv2.circle(img1,( 200 , 200 ), 50 ,( 255 , 0 , 0 ), 3 ) #画一个蓝边框的圆
cv2.imwrite( "linsi.jpg" ,img1)
cv2.waitKey( 0 )
|
注意:在img和img1上同时画
效果图:
画线 :
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 ) #直线
#参数2 起点坐标;参数3 终点坐标;参数4 颜色;参数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 ) #画矩形
#参数2 左上角坐标;参数3 右下角坐标;参数4 颜色;参数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 ) # 画椭圆
#参数2 椭圆中心
#第三个参数 椭圆的长短轴的长度
#第四个参数 整个椭圆的偏转角度(顺时针)
#第五个参数 圆弧起始角的角度
#第六个参数 圆弧终结角的角度
# 圆弧角度->x轴方向为0,逆时针方向为正
#第七个参数 color 线条的颜色
#第八个参数 线条的粗细程度,如果是负数表示填充
#第九个参数 line_type 线条的类型 ???
cv2.imwrite( "linsi.jpg" ,img1)
cv2.waitKey( 0 )
|
多边形:
画多边形——需要指定每个顶点的坐标
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) #多边形各顶点坐标
#数据类型必须是np.int32
points = points.reshape( - 1 , 1 , 2 )
img1 = cv2.polylines(img,[points], True ,( 0 , 0 , 255 ), 3 ) #画多边形
#参数2 各顶点
#参数3 True表示封闭,False表示不封闭
#参数4 颜色
#参数5 线条粗细
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 ) #画文字
#参数3 位置
#参数5 字体大小
#参数7 线型
cv2.imwrite( "linsi.jpg" ,img1)
cv2.waitKey( 0 )
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/liming19680104/p/12205389.html