是否有一种方法可以检测opencv中的近矩形?

是否有一种方法可以检测opencv中的近矩形?,opencv,computer-vision,Opencv,Computer Vision,我要找出形状中最像矩形的。第一个图像是原始图像,其形状可能是矩形,但它们不是。第二幅图中的绿色矩形就是我想要的。那么,有没有一种方法可以用opencv实现这一点呢?我试过霍夫线,但效果不好 源图像: 我想找出这些形状中最像矩形的,比如绿色的矩形 我想要的是: 一个非常简单的方法是,在形状周围有一个矩形边框后,计算方框内白色像素的百分比 白色像素的百分比越高,就越接近矩形 要获得边界框,您应该查看opencv中的FindContents,或者一些Blob提取算法,您会发现很多关于这些的问题 编辑

我要找出形状中最像矩形的。第一个图像是原始图像,其形状可能是矩形,但它们不是。第二幅图中的绿色矩形就是我想要的。那么,有没有一种方法可以用opencv实现这一点呢?我试过霍夫线,但效果不好

源图像:

我想找出这些形状中最像矩形的,比如绿色的矩形

我想要的是:
一个非常简单的方法是,在形状周围有一个矩形边框后,计算方框内白色像素的百分比

白色像素的百分比越高,就越接近矩形

要获得边界框,您应该查看opencv中的FindContents,或者一些Blob提取算法,您会发现很多关于这些的问题

编辑:

也许您应该首先获得形状的最小边界矩形,然后执行这种启发式操作:

  • 收缩矩形尺寸,直到矩形内的白色像素百分比达到您定义的某个阈值(如矩形内90%的白色像素)
要获取最小边界矩形(包含整个形状的最小矩形),可以查看本教程:


还有一件事可能会有所帮助,那就是将最小边界矩形和最大内部矩形(白色形状中可以容纳的最大矩形)的大小区分开来。这些矩形的属性(宽度、高度、面积、中心坐标)之间的差别最小,最接近的形状是矩形。

FiffoCuttos将总是覆盖所有的白色像素,但是一些白色像素不是矩形的一部分,不清楚到底要考虑哪些形状“矩形”。我可以从您的示例中看出,您并不是在寻找最小的边界矩形(包含整个形状的最小矩形),但它也不是最大的内部矩形(白色形状中可以容纳的最大矩形)。