cv2.fillPoly传入多边形列表时填充结果不符合预期问题咨询
这不是OpenCV的bug,属于参数使用逻辑错误。
原因说明
cv2.fillPoly接口批量传入多个多边形构成的列表时,不会独立对每个多边形单独执行填充计算,而是将所有多边形视为一组多轮廓输入,默认按照奇偶填充规则统一判定需要填充的区域。
你给出的5个多边形存在大量共享顶点与边,拼接后整体形成了额外的闭合外轮廓,触发了奇偶填充规则的判定逻辑,最终导致底部不属于任何自定义多边形的区域也被填充。
解决方案
你测试可用的循环逐个填充就是标准正确用法,每次仅向cv2.fillPoly传入单个多边形,让接口单独计算每个多边形的填充区域,即可避免多轮廓联动的误填充问题:
for polygon in pnts: cv2.fillPoly(img, [polygon], color=[255,255,255])
内容的提问来源于stack exchange,提问作者WurmD
相关产品推荐
相关产品推荐

