直线的方程可以用y=m*x+b 来表示,其中k和b是参数,分别是斜率(m)和截距(b)。通过一点(x,y)的所有直线的参数都会满足方程y=mx+b。即点(x,y)确定了一组直线。
通过图我们可以找到 m 和 b 区域,如果直线通过这个区域就等于给这个区域进行投票。
在坐标系中存在问题,就是如果我们直线如果与坐标轴并行,这样斜率也就是 w 值趋近于无穷。我们无法 hough space 通过点表示该直线。
在实际中,有 y = c 这样情况,或者是 x = c 这样方程为一个常数,也就是斜率为无穷大。所以在实际中采用极坐标 p = xcos(theta) + ysin(theta) 平面上点对应极坐标上的一条曲线。
我们看一看如何在极坐标根据 theta 和 p 确定一条直线,从原点引一条垂直直线的线段,线段距离就是 p 。theta 和 p 带入 x = 5 y = 2
如果 theta 为 0 那么在极坐标上表示为 x 截距为 5 也就是 p = 5 值
如果 theta = 90 表示 p =2 在 y 轴上线段。
在极坐标中一点的直线集,现在 hough 空间表示如右图,这些点也会连接成一条曲线
在坐标系列点中,在 hough 空间曲线如图,这些点在 hough 空间所对应曲线交于一点,这一点在坐标轴所对应的直线就是穿过这些点的直线,也就是这些点的共线。