我们在绘图中可能涉及到的函数有:cv2.line()、cv2.cicle()、cv2.rectangle()、cv2.ellipse()、cv2.putText()等。
一个。 画一条线
运行效果:
说明:
np.zeros((512,512,3),np.uint8)
返回给定形状和类型的数组,用0填充,实际上生成一个空的彩色图像。
图像的一个像素点有1个或3个值,灰度图有一个灰度值,彩色图像有3个值组成一个像素值,它们表现出不同的颜色。
生成空灰度图:np.zeros((512,512),np.uint8)
2. cv2.line(img,(0,0),(260,260),(255,0,0),5)
-
有 五个参数,图片名称,起点坐标,终点坐标,颜色,线宽
-
函数原型cv2.line(img,Point pt1,Point pt2,color,thickness= 1、line_type=8 shift=0)
-
Point pt1, Point pt2 线段两端的两个坐标点(0,0), (260,260)
坐标点示意图
-
(255,0,0)的颜色 line,这里使用的是rgb图像,所以它是一个3个元素的数组,如果灰度图像是0~255的值。
3.cv2.namedWindow (‘image’,cv2.WINDOW_NORMAL)
-
创建窗口
4 .cv2.resizeWindow(‘image’,1000,1000)
-
图形缩放
p>5.最后一个参数5表示线的粗细,不写的话默认就是 1
2。 绘制矩形
运行效果:
说明:
1.cv2.rectangle( img,(350,0),(500,128),( 0,255,0),3)
-
绘制矩形函数
-
五个参数, 图片名称,两个对角点的坐标,颜色数组,线宽
-
与直线唯一不同的是输入的两个坐标点不是起点和终点 点而是对角线的起点和终点
3. 画圆
运行效果:
说明:
1.cv2.circle(img,(425,63),63,(0,0,255) ,-1)
-
画圆的函数
-
五个参数,图片 名称,圆心坐标,半径,颜色数组,线宽
-
(425,63),63圆心和半径
-
(0,0,255) color
-
-1是向内填充/center/radius,如果不想填充,不用写,可以 给一个参数设置笔刷的粗细
4. 绘制椭圆
运行效果:
说明:
1.cv2.ellipse(img,(256,256),(100,50),0,0,360,255 ,-1)
p>
-
画椭圆函数
-
有八个参数。 图像、中心坐标、长轴和短轴、旋转角度、显示部分、颜色数组、线宽
-
中心坐标(256,256)
-
旋转角度参考 椭圆逆时针旋转多少度,这里是0
-
显示的部分是极坐标中用角度描述的区域,从长轴顺时针数,第一个是 起始角度,设置为0; 第二个是终点角度,设置为360。这两个参数的作用是只显示椭圆从长轴起点开始0到360度范围内的部分
li>
长轴和短轴为(100,50)表示长轴为100,短轴为50
五个..绘制多边形
运行效果:
说明:
1.cv2.polylines(img,[pts],True,( 0,255,255))
-
绘制多边形的函数
-
polylines有五个参数,image ,顶点集,是否闭合,颜色数组,线宽
-
True和False表示多边形是否闭合,True是闭合的,False有一侧空,不闭合
6. 给图片添加文字
运行效果:
说明:
1.cv2.putText(img ,’OpenCV’,(10,500), font, 4 ,(255,255,255),2,cv2.LINE_AA)
-
八个参数,图片,字符串,坐标,字体,字号,颜色数组, 线宽,线型
-
font = cv2.FONT_HERSHEY_SIMPLEX 使用默认字体,具体线宽,线型可以自定义百度一下,有很多。
更多内容请关注头条号:小5嵌入式