目录
一、绘制函数参数说明
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: 椭圆的边界粗细,默认为1lineType: 椭圆的边界类型,默认为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 npimage = 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 npimage = 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 npimage = 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 npimage = 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 npimg = 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()
运行结果: