9.绘制图形
绘制直线
cv2.line(img,pt1,pt2,color,thickness,lineType,shift)
- img:绘制的图片对象
- pt1:起始点
- pt2:终止点
- color:颜色,用bgr形式表示,(0,0,255)表示红色
- thickness:线宽
- lineType:线的类型,与plt中的线类型不一样,这里主要是指毛边
- shift:缩放比例,一半不做变化
绘制矩形
cv2.rectangle(img,pt1,pt2,color,thickness,lineType,shift)
- 参数和画直线一样,相当于画了一条对角线,根据对角线来画出矩形
绘制圆
cv2.circle(img,center,radius,color[,thickness[,lineType[,shift]]])
- 相同的参数含义与直线一样,在这里不在声明
- center:圆心的坐标
- radius:圆的半径
绘制椭圆
cv2.ellipse(img,中心点,长宽的一半,偏移角度,从哪个角度开始,到哪个角度结束…)
- 长宽的一半以元祖的形式传入,如(100,50),第一个参数是长,第二个参数是宽
绘制多边形
无填充多边形:
cv2.polylines(img,pts,isColsed,color,thickness,[,lineType[,shift]]])
- 上面一样的参数就不再介绍
- pts:多边形的点集,注意维度,必须是int32位
- eg:pts = np.array([[(300,10),(150,100),(450,100)]],np.int32)
- isColsed:是否闭合,即第一个点是否与最后一个点相连
填充多边形
cv2.fillPoly()
- 参数与上面有所不同,没有isColsed,填充多边形一定闭合
- 也没有线宽thickness和类型lineType
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Opencv学习
@File :绘制图形.py
@IDE :PyCharm
@Author :咋
@Date :2023/1/12 15:57
"""
import cv2
import numpy as np
# 创建窗口
cv2.namedWindow("image",cv2.WINDOW_NORMAL)
cv2.resizeWindow("image",(640,480))
image = cv2.imread("image.jpg")
# 画直线
cv2.line(image,(10,100),(40,320),(0,0,225),5,16)
# 画矩形
cv2.rectangle(image,(320,40),(420,200),(20,20,20),5,16)
# 画圆
cv2.circle(image,(500,500),100,(100,200,200),5,16)
# 画椭圆
cv2.ellipse(image,(1000,1000),(200,100),0,0,360,[134,234,234],5,16)
# 画多边形
pts_1 = np.array([[(223,456),(345,643),(563,568),(893,297)]],np.int32) # 注意维度,以及32位无符号的整数
cv2.polylines(image,pts_1,True,(123,147,189),5,16)
# 画填充多边形
pts_2 = np.array([[(323,466),(145,143),(963,568),(893,397)]],np.int32) # 注意维度,以及32位无符号的整数
cv2.fillPoly(image,pts_2,(223,143,89))
cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咋的个人博客!