目录
一、绘制函数参数说明
1.1 cv2.line()绘制直线
1.2 cv2.rectangle()绘制矩形
1.3 cv2.circle() 绘制圆形
1.4 cv2.ellipse()绘制椭圆
1.5 cv2.polylines()绘制多边形
1.6 cv2.putText() 绘制文字
二、绘制函数使用示例
2.1 在图像上绘制直线
2.2 在图像上绘制矩形
2.3 在图像上绘制圆形
2.4 在图像上绘制椭圆
三、绘制图形函数结合使用
在OpenCV中,我们可以使用几个函数来绘制不同类型的图形,例如直线、矩形、圆形和多边形。下面是几个常用的绘制函数:
一、绘制函数参数说明
1.1 cv2.line()绘制直线
线:
cv2.line(img, ps, pe, color, thickness)
img: 要绘制形状的图片
ps: 起点位置坐标
pe: 终点位置坐标
color: 绘制的颜色
thickness: 线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状
1.2 cv2.rectangle()绘制矩形
矩形:
cv2.rectangle(img, ps, pe, color, thickness)
img: 要绘制形状的图片
ps: 起点位置坐标
pe: 终点位置坐标
color: 绘制的颜色
thickness: 线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状
1.3 cv2.circle() 绘制圆形
圆:
cv2.circle(img, center, radius, color, thickness)
img: 要绘制形状的图片
center: 圆心坐标
radius: 圆的半径值
color: 绘制的颜色
thickness: 线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状
1.4 cv2.ellipse()绘制椭圆
椭圆:
cv2.ellipse(image, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift)
image: 要绘制椭圆的图像
center: 椭圆的中心坐标
axes: 椭圆的半长轴和半短轴长度
angle: 椭圆的旋转角度
startAngle: 椭圆弧的起始角度
endAngle: 椭圆弧的结束角度
color: 椭圆的颜色,可以是RGB值或者一个单一的灰度值
thickness: 椭圆的边界粗细,默认为1
lineType: 椭圆的边界类型,默认为8连接线
shift: 坐标的小数位数,默认为0
1.5 cv2.polylines()绘制多边形
多边形:
cv2.polylines(img, pts, isClosed, color, thickness)
img: 要绘制图形的图像
pts: 多边形的顶点坐标列表
isClosed: 指定是否闭合多边形(为True时闭合,为False时不闭合)
color: 多边形的颜色(BGR格式)
thickness: 多边形的边界线的粗细程度
1.6 cv2.putText() 绘制文字
添加文字:
cv2.putText(img, "text", org, fontface, fontscale, color, thickness)
img: 要绘制形状的图片
text: 文字内容
org: 文字在图像中的左下角坐标
fontFace: 字体类型,可选叁数有几种
fontScale: 缩放比例,用该值乘以程序字体默认大小即为字体大小
color: 绘制的颜色 (可以是一个颜色阈值)
thickness: 线宽,默认为 1;对于矩形或者圆之类的封闭形状而言,传入 -1表示填充形状
二、绘制函数使用示例
2.1 在图像上绘制直线
import cv2
import numpy as np
image = np.zeros((500, 500, 3), np.uint8) # 创建一个黑色的图像
image = cv2.line(image, (0, 0), (500, 500), (0, 255, 0), 3) # 绘制一条绿色的直线
cv2.imshow("Line", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.2 在图像上绘制矩形
import cv2
import numpy as np
image = np.zeros((500, 500, 3), np.uint8) # 创建一个黑色的图像
image = cv2.rectangle(image, (100, 100), (400, 400), (0, 0, 255), 2) # 绘制一个红色的矩形
cv2.imshow("Rectangle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.3 在图像上绘制圆形
import cv2
import numpy as np
image = np.zeros((500, 500, 3), np.uint8) # 创建一个黑色的图像
image = cv2.circle(image, (250, 250), 100, (255, 0, 0), -1) # 绘制一个蓝色的填充圆
cv2.imshow("Circle", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.4 在图像上绘制椭圆
import cv2
import numpy as np
image = np.zeros((500, 500, 3), np.uint8) # 创建一个黑色的图像
image = cv2.ellipse(image, (250, 250), (100, 200), 0, 0, 360, (255, 255, 0), -1) # 绘制一个黄色的填充椭圆
cv2.imshow("Ellipse", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
三、绘制图形函数结合使用
示例:
import cv2 as cv
import numpy as np
img = np.zeros((480,480,3),np.uint8) # 初始化图像: np.zeros(length, width, 颜色通道数, np.uint8)
img = cv.line(img,(0,0),(480,480),(0,0,255),5) # 画线: cv.line(img, 起点位置坐标, 终点位置坐标, color, 线宽)
img = cv.rectangle(img,(100,100),(300,300),(0,255,0),5)
img = cv.circle(img,(200,200),90,(255,0,0),5) # 画圆: cv.rectangle(img, ps, pe, color,传入 -1表示填充形状)
img = cv.putText(img,"xin",(100,90),cv.FONT_HERSHEY_SIMPLEX,1,(255,255,0),2) # 添加文字 颜色通过BGR表达
cv.imshow("img",img)
xin = cv.waitKey(0)
if xin == 27:
cv.destroyAllWindows()
运行结果: