Hough线变换

Posted jorsean

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hough线变换相关的知识,希望对你有一定的参考价值。

算法核心思想

任何一条直线斜截式表达式y=a*x+b,可以转换成参数空间的表达式b=y-a*x。所以,图像空间的任何一条直线有固定的a和b来确定,转换成参数空间都是一个点(a, b);同时,图像空间中经过任何一点(x0,y0)的所有直线在参数空间就是一条直线。Hough变换就是将图像中每一个点转换成参数空间的一条直线,这样,参数空间中如果两条直线相交于一点(a0,b0),就说明这两条直线对应的图像空间中的点在同一条直线上,并且这条直线的方程为y=a0*x+b。

实际应用中,因为斜截式不好表示竖线,常使用极坐标表示,这样每点对应的参数线就是曲线。常用到累加器单元来统计参数空间中相交于一点的曲线个数。简言之,就是把参数空间的两个坐标轴划分为小的片段,这样整个参数空间就被划分为了小的方格,统计经过每个方格的参数曲线个数,并输入一个阈值,如果经过方格的曲线个数大于阈值就认为这些曲线对应的图像空间点在一条直线上。

具体到图像的直线检测中,常用步骤为:

1、对输入图像使用Canny等边界算法求边界,得到一副边界的二值图像。图像背景用黑色表示,边界用白色表示。

2、对所有的边界点做Hough变换,背景点忽略不处理。

3、统计参数空间中所有格子的经过曲线个数并排序。

4,、根据输入的阈值来选出参数空间格子。

5、画出参数空间对应的直线。

以上是关于Hough线变换的主要内容,如果未能解决你的问题,请参考以下文章

Hough线变换

模式识别基于 Hough变换视频车道线检测matlab源码

车道线检测基于matlab Hough变换视频车道线检测 含Matlab源码 274期

车道线检测基于matlab Hough变换图片车道线检测 含Matlab源码 276期

车道线识别基于matlab hough变换道路检测直线检测含Matlab源码 2074期

车道线识别基于matlab hough变换道路检测直线检测含Matlab源码 2074期