HoughlinesP参数“threshold”和“minLineLength”

时间:2014-07-23 23:47:22

标签: opencv image-processing hough-transform

我在OpenCV中使用HoughLinesP函数。在阅读文档here之后,我对两个参数“threshold”和“minLineLength”的必要性感到困惑。 文档说:

  

threshold - 累加器阈值参数。只有那些线   返回获得足够的投票(>阈值)。

     

minLineLength - 最小行长度。短于此的线段将被拒绝。

其中一个不是多余的吗?一行得到的投票数是否等于它包含的像素数?鉴于“minLineLength”指定要拒绝哪些行,“阈值”的用途是什么?我在这里错过了一些东西。我们将不胜感激。

2 个答案:

答案 0 :(得分:3)

如果累加器的单元很宽并且有许多紧密间隔的短线,则累加器的计数会很高。 min_line_length有助于解决此类问题。

希望这能澄清手头的问题。

答案 1 :(得分:0)

好的,我阅读了文档以及Randomized Hough Transform(将其称为RHT)如何工作,我有这个想法,但它可能不正确。

在RHT中,并非所有二进制点都被考虑在内。这就是它更快的原因。因此,threshold在累加器中意味着需要多少票才能将此(rho,theta)视为一条线,这很容易。

第二个有点令人困惑,但这是我的,minLineLength可能是从投票的点数计算的线的长度。意思是,如果我们有5分投票给某一行并且所有这些点都非常接近,那么lineLength将是短的可能是5像素。另一方面,如果3个点投票给另一条线并且点数远远超过其中一部分,那么lineLength很大可能是20像素。

因此我们不能将投票门槛视为等于lineLength,因为并非所有二进制点都被计算在内。