OpenCV Python 2D绘制多边形(polylines)

本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 6.0.0

示例目的

使用cv.polylines在图片上绘制多边形。

实现代码

1,加载并显示图片

import cv2
import matplotlib.pyplot as plt
import numpy as np   #加载Numpy

img = cv2.imread('MakerOnsite-Logo.png')
plt.imshow(img)

显示读取到的图像

2,创建多边型点坐标的数组

# 通过numpy创建多边形点坐标的数组
points = np.array([[50, 50], [50, 400], [400, 400], [450, 150],[350, 50]])

注意:此时points的元素数据类型是int64

3,在图像上添加多边形

# 在图像上绘制多边形,注意这里的坐标点数组需要数据类型是int32的,所以通过np.int32()转换
img = cv2.polylines(img, np.int32(), 1, (100,100,255),5)
# 显示图像
plt.imshow(img)

显示绘制矩形后的图像

程序说明

本示例,主要使用cv.polylines在图像上绘制多边形。

cv.polylines 语法

img = cv.polylines( img, pts, isClosed, color[, thickness[, lineType[, shift]]] )

参数概述

  • img - 输入的图像

  • pts - 多边型点坐标数组

  • isClosed - 指定多边型是否闭合,设置闭合后则会在最后一点和第一点连上线段。

  • color - 线段颜色

  • (可选)thickness - 线段厚度

  • (可选)lineType - 线段类型。请参见 OpenCV LineTypes参考

  • (可选)shift - 转移因数

详细的cv.polylines请参考 OpenCV polylines参考