在实际运用中,我们会在图片上添加一些图形,比如目标检测时在物体周围画个矩形框,人脸识别中将人脸的关键点用点(圆形)标出来。

OpenCV常用的形状绘制方法:

线段的绘制

线段的绘制是使用cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])方法,参数img为输入的图像(绘制图像的每个方法的第一个参数都是输入的图像),参数pt1pt2colorthicknesslineType(可省略)依次为起点的坐标、终点的坐标、颜色、线条的粗细和线条的类型。参数shift代表坐标精确到小数点后第几位。

矩形的绘制

矩形的绘制是使用cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])方法。画矩形的方法可分为两种,一种是确定四个顶点的坐标,另一种只确定两个对角顶点的坐标。rectangle()方法基于后者。参数img为输入的图像,参数pt1pt2为绘画矩形的两个对角顶点坐标,参数colorthicknesslineType(可省略)依次为颜色、线条的粗细和线条的类型。

圆形的绘制

圆形的绘制使用cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])方法,参数img为输入的图像,参数centerradiuscolorthicknesslineType(可省略)依次为圆形的原点、圆形的半径、颜色、线条的粗细和线条的类型。如果thickness变量的值为负,则代表要画一个实心圆。

椭圆的绘制

椭圆的绘制与圆形绘制相似,利用cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color [, thickness[, lineType[, shift]]])方法实现椭圆的绘制。其中参数img为输入的图像,centerCoordinatesaxesLengthanglestartAngleendAnglecolorthickness lineType分别为椭圆的中心坐标、元组(椭圆的长轴长度,短轴长度)、旋转角度、椭圆弧的起始角度、椭圆弧的终止角度、边界线的颜色、线条的粗细和线条的类型。

多边形的绘制

对于多边形的绘制,需要先创建包含顶点坐标的数组,再调用cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])进行绘制。其中参数img为输入的图像,参数ptsisClosedcolorthicknesslineType分别为多边形上点的数组、标志、多边形颜色、多边形线的粗细、多边形线的类型。标志代表绘制的多边形是否闭合,若为True 则画若干个闭合多边形, 若为False 则画一条连接所有点的折线。

图像绘制-线段、矩形、圆形、椭圆等-LMLPHP

09-26 11:50