【问题标题】:Understanding Hough-Transformation [duplicate]了解霍夫变换
【发布时间】:2019-10-26 10:55:14
【问题描述】:

我想了解学校的 Hough 变换。 我知道我们不能表示平行于 Y 轴的垂直线(y = m*x+b)。但是我们可以用极坐标 r 和 theta 来做到这一点 (y= - cos(theta)/sin(theta) * x + r/sin(theta))。

但是假设我有一条线穿过这两点。 P1(0,0) 和 P2(0, 100)。所以这是一条与 Y 轴完全相同的线。 这如何用极坐标 r 和 theta 来表示? 因为 r 是 0,所以 theta 也是 0。我不明白这条线如何在霍夫空间中表示......:/

谁能给我解释一下?

【问题讨论】:

  • 为什么θ不能是90度是r是0?
  • @CrisLuengo 如果我的线穿过点 P1(0,0) 和 P2(0,100),那么我的 r 为 0。当我没有 r 时,我也没有 theta还是我错了?
  • 你还有一个 theta。这是两个自变量。
  • 请注意,副本中的问题和答案标有 MATLAB,但您要了解的基本内容是了解如何计算该答案所涵盖的霍夫变换。

标签: opencv image-processing hough-transform houghlinesp


【解决方案1】:

你的霍夫变换方程也可以写成(更常见的写成):

r = x*cos(theta) + y*sin(theta)

如果您设置r=0,这仍然可以解决。实际上,这代表了通过 (0,0) 处的像素的所有线。

对于通过 (0,0) 的垂直线,我们有 r=0theta=pi/2。这导致:

0 = x*1 + y*0

x=0 和任何y 都满足此条件。所以所有像素(0,y) 形成这条线。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多