在OpenCV中,用polylines函数画多边形,函数声明如下:
polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])
img表示输入图像
pts表示多边形点集
isClosed表示绘制的多线段是否封闭,如果时闭合的(用True表示)函数会将最后一个顶点与第一个顶点连成一条直线
color表示线条颜色,为BGR形式,如蓝色为(255,0,0)
thickness表示线条的粗细程度,默认为0,不能为负数,因为多边形有专门的填充函数
lineType表示线段的类型,默认为LINE_8,可直接用8表示,另外还有LINE_4和LINE_AA
shift表示坐标中的小数位数,默认为0
代码示例如下:
import cv2
import numpy as np
# 显示图像
def cv_show(winame, image):
cv2.imshow(winame, image)
cv2.waitKey(0)
cv2.destroyAllWindows()
img=cv2.imread('test.jpg')
pts=np.array([[20, 10], [10, 27], [20, 44], [40, 44], [50, 27], [40, 10]], np.int32)
cv2.polylines(img, [pts], True, (0, 0, 255), 2) # True表示该图形为封闭图形
cv_show('Polygon', img)
注意:
在OpenCV中,用fillPoly函数来填充多边形,函数声明如下:
fillPoly(img, pts, color[, lineType[, shift[, offset]]])
img表示输入图像
pts表示多边形点集
color表示多边形颜色,为BGR形式,如蓝色为(255,0,0)
lineType表示线段类型
shift表示坐标中的小数位数,默认为0
offset表示等高线所有点的偏移
函数示例如下:
cv2.fillPoly(img, [pts], (0, 0, 125)) #img,pts同上,实际代码只需要这三个参数即可,其他均有默认值
cv_show('fillPolygon',img)