gpt4 book ai didi

java - Opencv Imgproc.HoughLines() 调整长度参数

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:49 26 4
gpt4 key购买 nike

--请参阅下面的更新/答案。用户错误!--

我正在尝试了解如何在 Imgproc.HoughLines() 中设置参数以找到较短的行。我试过这样的东西,但根本不起作用:

Imgproc.HoughLines(matSrc, matLines, 1, Math.PI / 180, houghThreshCurrent, 25, 10);

我已经为最后两个参数尝试了几个值,但似乎都不起作用——它找不到任何行。但是,使用不带最后两个参数的方法版本可以很好地找到我想要的行,而不是较短的行,无论阈值有多低。

这是最后两个参数的文档:

srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is rho/srn. If both srn=0 and stn=0, the classical Hough transform is used. Otherwise, both these parameters should be positive.
stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta.

有人可以翻译或提供示例值吗? :)

我还尝试了概率版本 HoughLinesP()。它似乎不太适合我的用例。另一种选择是将我的图像缩放到更大的尺寸,如果我无法使线距离参数起作用,则默认的 HoughLines() 起作用。


回答:我的问题是我没有意识到 HoughLinesP() 返回的 Mat 与 HoughLines() 返回的格式不同。当它们已经在 XY 坐标中时,我正在从极坐标转换 HoughLinesP() 的结果!事实证明,HoughLinesP() 远远满足我们的需求,而且它的参数非常适合调整线长。这是帮助我看到我的方式错误的链接:https://dsp.stackexchange.com/questions/10467/influence-of-image-size-to-edge-detection-in-opencv

最佳答案

一个很好的例子可以在这里找到:http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/hough_lines/hough_lines.html

尝试使用 CV_PI 而不是 Math.PI?其他原因可能是因为您的阈值。尝试插入一个像 50 这样的值(玩弄数字)。最后 2 个值,您可以尝试将其保留为零并在插入值之前先对其进行测试。最后 2 个的默认值通常为零。

不生效的原因可能有很多,下面我们一一慢慢找原因。另外,在应用 Hough 之前,您是否做过 Canny 之类的,对吗?

希望有帮助,让我知道我的建议是否有用和有帮助(:干杯。

关于java - Opencv Imgproc.HoughLines() 调整长度参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21265986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com