[掩码]绘制多边形
进行多边形的绘制和填充
示例程序
import cv2
import numpy as np
img = cv2.imread('box.png')
# binary mask
coordinates = []
coordinate = np.array([[[100, 100], [300, 100], [200, 200], [100, 200]]])
coordinate2 = np.array([[[100, 100], [300, 200], [100, 300], [100, 200]]])
print(coordinate.shape)
print(coordinate2.shape)
coordinates.append(coordinate)
coordinates.append(coordinate2)
mask = np.zeros(img.shape[:2], dtype=np.int8)
mask = cv2.fillPoly(mask, coordinates, 255)
# 掩码实现
image = cv2.add(img, np.zeros(np.shape(img), dtype=np.uint8), mask=mask)
cv2.imshow('mask', mask)
cv2.imshow('image', image)
cv2.waitKey(0)
出错
cv2.error: OpenCV(4.4.0) /tmp/pip-req-build-f9hglo4e/opencv/modules/imgproc/src/drawing.cpp:2395: error: (-215:Assertion failed) p.checkVector(2, CV_32S) >= 0 in function 'fillPoly'
注意:每个多边形坐标点数组大小为(1, 4, 2),其数据格式为np.int