天天看点

霍夫变换原理

一、简单介绍(复制而来)

Hough变换是图像处理中从图像识别几何形状的基本方法之一,霍夫变换寻找直线和圆的方法相比其他方法,可以更好的减少噪声干扰。经典的霍夫变换常用来检测直线,圆,椭圆等。

Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间的给定曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像给定曲线的检测问题,转化为检测参数空间的峰值问题。也就是把检测整体特性转化为检测局部特性。比如直线,椭圆,圆,弧线等。

二、Hough变换的基本思想

设已知图像上画了一条直线,要求找到这条直线的位置。在初中我们知道,在X-Y坐标系下,直线可以用方程y=k*x+b来表示,(其中k表示斜率,b为截距)。选择只要找到k、b的值就可以检测该直线。而直线在原始图像是一系列离散的点集合。设过图像中某一点(x0,y0)的所有直线都会满足方程y0=kx0+b。而该方程在k-b平面上是一条直线。因此,在圆图像中所有点在k-b平面都有相对的直线,而原图像中在同一条直线上的所有点对应的直线必然在k-b平面相交于一点。例如,图像上有三个点A(0,0)B(1,1)C(2,2)。过满足过A点的直线参数方程为b=0,满足过B点所有直线的参数方程为b=1-k.满足过C点所有直线的参数方程为b=2-2k。在k-b平面可以找到他们交于点(1,0)。同理,原图像上该直线上的其他点在参数平面也会经过该点。最后可通过统计学来解决查找直线问题。

简而言之,Hough变换思想为:在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。

在实际应用中,y=k*x+b形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,利用极坐标的方式,将直线方程表示成:ρ=x*cos(ξ)+y*sin(ξ)。其中ρ表示直角坐标系中原点到直线的距离,ξ表示x轴与直线法线的夹角,取逆时针方向。这样,图像平面上的一个点就对应到ρξ平面上的一条曲线上,其它的还是一样。