我要在各种形状中找出最相似的矩形。第一张图像是原始图像,其形状可能是矩形,但实际上不是。第二张图片中的绿色矩形是我想要的。那么有没有办法用opencv做到这一点?我已经尝试过 hough 线,但结果并不好
源图:
而我想要的是在这些形状中找出最像的矩形,比如绿色的矩形。
我想要的:
最佳答案
一个非常简单的方法是,在形状周围有一个矩形边界框之后,计算框内白色像素的百分比。
白色像素的百分比越高,它越接近矩形。
要获得边界框,您应该查看 opencv 中的 findContours 或一些 Blob 提取算法,您会发现很多与这些相关的问题。
编辑:
也许您应该先获取形状的最小边界矩形,然后进行这种启发式操作:
- 缩小矩形尺寸,直到矩形内的白色像素百分比达到您定义的某个阈值(例如矩形内 90% 的白色像素)。
要获得最小边界矩形(包含整个形状的最小矩形),您可以查看本教程:
可能也有帮助的一件事是计算最小边界矩形和最大内部矩形(白色形状内可以容纳的最大矩形)的大小差异。这些矩形的属性(宽度、高度、面积、中心坐标)之间的差异越小,形状越接近矩形。
关于opencv - 有没有办法在opencv中检测近矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776345/