(这是this previous question的后续文章)。
我能够成功地使用OpenCV / Hough变换来检测图片中的线条(扫描的文本);一开始它会检测很多很多行(每行文本至少一行),但通过反复试验调整‘阈值’参数,它现在只检测“真实”的线条。
(“阈值”参数依赖于图像大小,如果必须处理不同分辨率的图像,这会有点问题,但这是另一回事)。
我的问题是,Hough变换有时会检测到只有一条线的两条线;这两条线彼此非常接近,而且(显然)是平行的。
=>如何识别两条几乎平行且彼此非常接近的直线?(这样我就只能保留一个)。
发布于 2009-10-14 09:24:57
如果使用标准或多尺度hough,最终将得到极坐标中线的rho和theta坐标。Rho是到原点的距离,theta通常是检测到的直线和Y轴之间的角度。不考虑opencv中hough变换的细节,这是在这些坐标中的一般规则:两条线将几乎平行并且彼此非常接近,当:-它们的thetas几乎相同并且它们的rhos几乎相同或者-它们的thetas相隔近180度并且它们的rhos接近彼此的负数
我希望这是有意义的。
发布于 2010-12-09 08:50:44
有趣的是,θ是直线和y轴之间的角度。
通常,rho和theta值被可视化为从x轴到垂直于所讨论直线的直线的角度。那么rho就是这条垂直线的长度。因此,theta = 90和rho = 20意味着从原点向上20个像素的水平线。在Hough Transform question上显示了一幅漂亮的图像
https://stackoverflow.com/questions/1372047
复制相似问题