有没有办法在opencv中检测近矩形?

时间:2013-09-13 00:27:30

标签: opencv computer-vision

我将在形状中找到最像外观的矩形。第一张图像是原始图像,其形状可能是矩形,但它们不是。第二张图片中的绿色矩形是我想要的。那么有没有办法用opencv做到这一点?我已经尝试过hough line但结果并不好

源图片: enter image description here

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

我想要的: enter image description here

1 个答案:

答案 0 :(得分:1)

一种非常简单的方法是,在您的形状周围有一个矩形边界框后,计算该框内白色的像素百分比。

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

要获取边界框,你应该看一下opencv中的findContours,或者一些Blob提取算法,你会发现很多关于这些的问题。

修改:

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

  • 缩小矩形尺寸,直到矩形内的白色像素百分比达到您定义的某个阈值(如矩形内90%的白色像素)。

要获取最小边界矩形(包含整个形状的最小矩形),您可以查看本教程:

http://docs.opencv.org/doc/tutorials/imgproc/shapedescriptors/bounding_rects_circles/bounding_rects_circles.html

有一点可能也有帮助,即从最小边界矩形和最大内部矩形(可以在白色形状内部放入的最大矩形)中进行尺寸差异。这些矩形的属性(宽度,高度,面积,中心坐标)之间的差异越小,最接近的是矩形的形状。