无人驾驶 OpenCV (3) 识别车道线


直线的方程可以用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 空间所对应曲线交于一点,这一点在坐标轴所对应的直线就是穿过这些点的直线,也就是这些点的共线。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容