Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OpenCV中测试线的接近度(Hough变换)_Opencv_Proximity - Fatal编程技术网

如何在OpenCV中测试线的接近度(Hough变换)

如何在OpenCV中测试线的接近度(Hough变换),opencv,proximity,Opencv,Proximity,(这是我们的后续行动) 我能够成功地使用OpenCV/Hough变换检测图片(扫描文本)中的线条;起初它会检测很多行(每行文本至少一行),但通过反复试验调整“阈值”参数,现在它只检测“真实”行 (阈值参数取决于图像大小,如果必须处理不同分辨率的图像,这会有点问题,但这是另一回事) 我的问题是Hough变换有时会检测到只有一条线的两条线;这两条线彼此非常接近并且(显然)平行 =>如何确定两条线几乎平行且彼此非常接近?(因此我只能保留一个)。如果使用标准或多尺度hough,最终将得到极坐标系中直线的

(这是我们的后续行动)

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

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

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


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

如果使用标准或多尺度hough,最终将得到极坐标系中直线的ρ和θ坐标。Rho是到原点的距离,θ通常是检测线与Y轴之间的角度。在不了解opencv中hough变换的细节的情况下,这是这些坐标中的一般规则:当: -它们的θ和ρ几乎相同 或 -它们的θ相距近180度,而它们的ρ相距近负


我希望这是有意义的。

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

通常,ρ和θ值可视为从x轴到垂直于相关直线的直线的角度。rho就是这条垂直线的长度。因此,θ=90和ρ=20表示从原点向上20像素的水平线。
一张漂亮的图片显示在

你从这些线条中得到了什么数据?是的,你完全正确;我在发布我的问题后发现了这一点;事实上,它在OpenCV中非常简单。谢谢此外,如果将“分辨率”参数设置得更高,则会发现更少的线;这就是我实际需要的。我们如何用rho和theta参数为“near”关键字设置一个阈值?例如,如果我想知道两条线是否几乎平行,它们之间的最大角度为0.5弧度(阈值=0.5)。