最近学习不规则掩膜,网上参考文章代码:
https://blog.youkuaiyun.com/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:多边形顶点数组的预期数据类型?
谢谢答主。祝他生活愉快。