Python-opencv不规则绘制掩膜-使用fillPoly报错error: (-215:Assertion failed)

最近学习不规则掩膜,网上参考文章代码:

https://blog.csdn.net/this_is_id/article/details/121355500

在使用不同的输入图像,与代码组装,无意外的话,还是出意外了。

报错:error: (-215:Assertion failed) p.checkVector(2, CV_32S) >= 0 in function 'cv::fillPoly'

继续百度,测试别人的做法,发觉是由于fillPoly的用法用错了;

原代码如下:

# 新建掩膜(多个点围起来的多边形)
points = np.array([[100, 100], [400, 50], [400, 400], [200, 380]], np.int32)
mask = np.zeros(img.shape[0:3], np.uint8)
# 填充掩膜为,白色
cv2.fillPoly(mask, points, (255, 255, 255))

解决思路,仅需要将 point,改成 [point]

便能解决报错,成功编译。

参考文章:

OpenCV cv2.fillPoly与cv2.fillconverxpoly:多边形顶点数组的预期数据类型?

谢谢答主。祝他生活愉快。

你可能感兴趣的:(笔记,opencv,python)