如何检测二进制图像中的多边形

我想检测二进制图像中连续或闭合多边形的存在.图像可以包含可变数量的边的多边形,并且根本不存在多边形.

这是积极的情况:

《如何检测二进制图像中的多边形》

和,

这个是否定的情况:

《如何检测二进制图像中的多边形》

图像处理中是否有任何方法或某些算法来检测连续多边形?

任何形式的帮助表示赞赏.

最佳答案 如果你需要检测凹面和凸面多边形,那么我可以建议你采用另一种方法来做到这一点,一个已经被
@mdh告知过

>首先,你需要找到轮廓(cv2.findContours)
>然后计算轮廓的面积(cv2.contourArea)
>计算二进制图像中黑色区域的面积(计算二进制图像中的黑色像素数,openCv有一个countNonZero函数,它可以帮到你)
>比较2个值,如果它们接近(例如它们的比率接近1,或大于某个值,则应通过测试更多图像来选择它),然后找到的轮廓是闭合的,因此它可能是一个多边形

当然,在自相交多边形中可能存在一些误差,和/或如果图像中存在多个轮廓,但这可以通过仅选取轮廓的边界框的分割来修复,并在每个轮廓上应用算法.

点赞