OpenCV-Python之画多边形

多边形绘制函数

在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-Python之画多边形_第1张图片

注意:

  1. 上述示例中在polylines函数里pts要用[ ]括起来,否则会报错,因为pts为点集
  2. polylines函数连线时会依照pts里给的点的顺序一次连线
  3. polylines函数一般只需给出img, pts, isClosed, color, thickness5个参数即可

多边形填充函数

在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)

图像显示为:
OpenCV-Python之画多边形_第2张图片

你可能感兴趣的:(OpenCV-Python,opencv,python,计算机视觉)