基于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变换,还有很多优化方法,就不一一介绍了。