基于hough变换的直线检测

直线检测在智能交通(检测车辆与道路)、图像识别领域都有很重要的应用。

而hough变换在理论上给出了可行的直线检测方法。

今天通过写博客的方法也让自己对hough进行一下了解。

 

首先是hough变换的原理。

     hough变换在1962年被提出,实现了一种从图像空间到参数空间的映射。

  在图像空间x-y中,所有共线的点可用直线  y = mx + c表示(当然,除了平行于y轴的直线之外)。

  即 c = -mx + y, 这样就变成了参数空间c-m的方程: c = -xm + y。

 

  把m,c离散化为二维累加数组。同时设定其阈值范围。(要找的是这样一个阈值范围内的直线)

  对每一个图像空间中给定的边缘点,

      遍历斜率m

         对给定的m,算出c的值。

  这样得到的应该是一个三维数组:第一维指定了边缘点的位置,第二维指定了m,第三维指定了c  

  通过分析数组,聚类的方法可以得到m/c点对的值。

 

  通过这种聚类方法, 应该可以找到图像中对应的直线。不过计算量巨大、复杂。

  针对hough变换,还有很多优化方法,就不一一介绍了。

 

 

posted on 2013-05-13 14:42  Leo Han  阅读(615)  评论(0编辑  收藏  举报