7

(这是上一个问题的后续行动)。

我能够成功地使用 OpenCV / Hough 变换来检测图片中的线条(扫描文本);起初它会检测很多行(每行文本至少一行),但通过反复试验调整“阈值”参数,它现在只检测“真实”行。

(“阈值”参数取决于图像大小,如果必须处理不同分辨率的图像,这有点问题,但那是另一回事了)。

我的问题是霍夫变换有时会检测到只有一条线的两条线;这两条线彼此非常接近并且(显然)平行。

=> 如何确定两条线几乎平行且彼此非常接近?(这样我只能保留一个)。

4

2 回答 2

9

如果您使用标准或多尺度霍夫,您最终将得到极坐标中线条的 rho 和 theta 坐标。Rho 是到原点的距离,theta 通常是检测到的线与 Y 轴之间的角度。在不研究opencv中霍夫变换的细节的情况下,这是这些坐标中的一般规则:两条线将几乎平行并且彼此非常接近:-它们的thetas几乎相同并且它们的rhos几乎相同或-它们的thetas相距近 180 度,并且它们的 rho 值彼此接近

我希望这是有道理的。

于 2009-10-14T09:24:57.487 回答
0

有趣的是,theta 是直线和 y 轴之间的角度。

通常,rho 和 theta 值可视化为从 x 轴到与所讨论的线垂直的线的角度。rho 就是这条垂直线的长度。因此,theta = 90 和 rho = 20 将意味着从原点向上 20 像素的水平线。霍夫变换问题上显示了一张漂亮的图片

于 2010-12-09T00:50:43.810 回答