如何在OpenCV中测试线的接近度(Hough变换)
(这是我们的后续行动) 我能够成功地使用OpenCV/Hough变换检测图片(扫描文本)中的线条;起初它会检测很多行(每行文本至少一行),但通过反复试验调整“阈值”参数,现在它只检测“真实”行 (阈值参数取决于图像大小,如果必须处理不同分辨率的图像,这会有点问题,但这是另一回事) 我的问题是Hough变换有时会检测到只有一条线的两条线;这两条线彼此非常接近并且(显然)平行如何在OpenCV中测试线的接近度(Hough变换),opencv,proximity,Opencv,Proximity,(这是我们的后续行动) 我能够成功地使用OpenCV/Hough变换检测图片(扫描文本)中的线条;起初它会检测很多行(每行文本至少一行),但通过反复试验调整“阈值”参数,现在它只检测“真实”行 (阈值参数取决于图像大小,如果必须处理不同分辨率的图像,这会有点问题,但这是另一回事) 我的问题是Hough变换有时会检测到只有一条线的两条线;这两条线彼此非常接近并且(显然)平行 =>如何确定两条线几乎平行且彼此非常接近?(因此我只能保留一个)。如果使用标准或多尺度hough,最终将得到极坐标系中直线的
=>如何确定两条线几乎平行且彼此非常接近?(因此我只能保留一个)。如果使用标准或多尺度hough,最终将得到极坐标系中直线的ρ和θ坐标。Rho是到原点的距离,θ通常是检测线与Y轴之间的角度。在不了解opencv中hough变换的细节的情况下,这是这些坐标中的一般规则:当: -它们的θ和ρ几乎相同 或 -它们的θ相距近180度,而它们的ρ相距近负
我希望这是有意义的。有趣的是,θ是直线和y轴之间的角度 通常,ρ和θ值可视为从x轴到垂直于相关直线的直线的角度。rho就是这条垂直线的长度。因此,θ=90和ρ=20表示从原点向上20像素的水平线。
一张漂亮的图片显示在你从这些线条中得到了什么数据?是的,你完全正确;我在发布我的问题后发现了这一点;事实上,它在OpenCV中非常简单。谢谢此外,如果将“分辨率”参数设置得更高,则会发现更少的线;这就是我实际需要的。我们如何用rho和theta参数为“near”关键字设置一个阈值?例如,如果我想知道两条线是否几乎平行,它们之间的最大角度为0.5弧度(阈值=0.5)。