2

我将在形状中找到最相似的矩形。第一个图像是原始图像,其形状可能是矩形,但它们不是。第二张图片中的绿色矩形是我想要的。那么有没有办法用opencv做到这一点?我试过霍夫线,但结果不好

源图像: 在此处输入图像描述

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

我想要的是: 在此处输入图像描述

4

1 回答 1

1

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

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

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

编辑:

也许你应该首先得到形状的最小边界矩形,然后做这种启发式:

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

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

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

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

于 2013-09-13T09:24:36.513 回答