【发布时间】:2025-12-30 00:15:09
【问题描述】:
我正在尝试使用不同的方法检测灰度图像中的白色矩形:轮廓检测和霍夫变换。不幸的是,我正在处理的图像存在一些限制,即
- 图像中有许多特征,矩形不是唯一的特征
- 矩形可以与其他特征合并(例如,矩形边缘之一可以与一条长直线重叠)
- 矩形可能包含一些其他特征(例如矩形内的字母、数字或某些徽标)
- 有些特征看起来像矩形(例如,字符“D”看起来像一个在右上角和右下角带有小圆弧的矩形;另一个例子是梯形而不是平行四边形)
- 矩形可以顺时针和逆时针旋转 0 到 15 度
- 在不同的光照条件下(例如 1 个像素间隙),线条可能会分成几条线,因此过滤线条的最小线条长度必须很短(例如在 Hough 变换中)
- 当最小线长度设置为较小值时,更常见的是同一条线在不同方向上出现重复线(即需要合并多条线)
对于轮廓方法,一些图像的轮廓被破坏了。此外,图像可能包含矩形等特征(例如字符“D”)。我不确定这是否是一个好方法。
我看到很多文章/论坛建议使用霍夫变换来检测矩形,如下面的帖子。不幸的是,我必须设置最小行长度的小值并且看到重复的行。我不知道如何处理上面提到的点(例如,结合所有重复的线并为每个边缘只选择一条线,如何区分大部分是线但带有像“D”这样的小弧线的特征,以及如何用一条边与一条长直线合并等来隔离正方形。
Hough transformation vs Contour detection for Rectangle recognition with perspective projection
欢迎提出任何建议!
编辑:添加一些图片
字符 D
带logo的矩形,边用长直线合并
梯形(顶部有阴影,底部形成梯形)
【问题讨论】:
-
显示示例输入图像会有所帮助
-
@Antonio:图片已添加,谢谢:)
标签: c++ opencv image-processing hough-transform opencv-contour