我正在尝试使用不同的方法检测灰度图像中的白色矩形:轮廓检测和霍夫变换。不幸的是,我正在处理的图像有一些限制,即
- 图像中有很多特征,矩形不是唯一的特征
- 矩形可以合并到其他特征(例如,矩形边缘之一可以与一条长直线重叠)
- 矩形可以包含一些其他特征(例如矩形内的字母、数字或一些徽标)
- 有一些特征看起来像矩形(例如字符'D'看起来像一个在右上角和右下角有小弧的矩形;另一个例子是梯形而不是平行四边形)
- 矩形可以顺时针和逆时针旋转 0 到 15 度
- 在不同的照明条件下(例如 1 个像素间隙),线条可能会被分成几条线,因此过滤线条的最小线条长度必须很小(例如在 Hough 变换中)
- 当最小线长设置为较小的值时,更常见的是同一条线在不同方向看到重复线(即需要合并几条线)
对于轮廓方法,一些图像的轮廓被破坏了。此外,图像可以包含矩形等特征(例如字符“D”)。我不确定这是否是一个好方法。
我看到很多文章/论坛建议使用霍夫变换来检测矩形,如下面的帖子。不幸的是,我必须设置最小行长度的小值并且看到重复的行。我不知道如何处理上面提到的点(例如,结合所有重复的线并为每个边缘只选择一条线,如何区分大部分是线但带有像“D”这样的小弧线的特征,以及如何隔离一个边与一条长直线合并的正方形等)。
欢迎任何建议!
编辑:添加一些图片
字符 D
带徽标的矩形,边缘与长直线合并
梯形(顶部有阴影,底部形成梯形)