图像处理算法|Hough变换检测直线的原理

霍夫变换(Hough Transfrom)于1962年首先由PaulHough提出,最开始是用来在图像中过检测直线的,后来扩展到检测圆、曲线等。
先来看看在图像空间(直角坐标系)下的直线方程:y=kx+b,也就相当于知道斜率k和截距b就可以唯一的确定一条直线。而将这个(k,b)映射到参数空间中就可通过一个点确定直角坐标系下的一条直线,即参数空间中的每一点都对应着直角坐标系下的唯一一条确定的直线。反过来也可以描述成在图像空间中的任一像素点p,对应于参数空间中有无数个点(因为过该像素点的直线有无数条),如图1所示。

  1. 图像处理算法|Hough变换检测直线的原理
    文章图片

    【图像处理算法|Hough变换检测直线的原理】但是对应斜率k不存在的直线(即和x轴垂直的直线),为了同样对应在参数空间中,引入极坐标系,则直线可以同样的表示为:y = r·sinθ, x = r·cosθ, 这样就以(r,θ)代替图像中的一条直线,如图2所示。Hough变换的思想就是基于此进行的,对于上面提到的图像中的一个像素点对应着参数空间中的无数条直线,将这无数条直线的点集画在参数坐标系中,则得到一条正弦曲线,而经过不同像素点的无数条直线在参数坐标系中对应着不同的正弦曲线(图3),越多曲线交于一点也就意味着这个焦点表示的直线在原图中由更多的像素点组成,这也就是在检测直线的时候需要设定一个阈值(相当于交点的个数)来确定该条直线是否存在。
    图像处理算法|Hough变换检测直线的原理
    文章图片

    图像处理算法|Hough变换检测直线的原理
    文章图片

    推荐阅读