直线/曲线检测:Randon变换与Hough变换

一. Randon 变换

Radon变换简介

Tips:
Radon变换的基本原理:
一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换。也就是说,平面(d,alfa)的每个点的像函数值对应了原始函数的某个线积分值。
Radon变换的基本思想:
Radon变换可以理解为图像在ρθ空间的投影,ρθ空间的每一点对应一条直线,而Radon变换是图像像素点在每一条直线上的积分。因此,图像中高灰度值的直线会在ρθ空间形成亮点,而低灰度值的线段在ρθ空间形成暗点。对直线的检测转化为在变换区域对亮点、暗点的检测。

二.Hough变换
Hough Transform(霍夫变换)
Tips:
1。Hough变换的基本原理:
其基本原理在于利用点与线的对偶性,将原始图像空间给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如可以将Hough变换推广为检测直线、椭圆、圆、弧线等。
2。Hough变换的基本思想:
在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。
3。对于未知半径的圆检测的简化:
a。图像边缘除了位置信息,还有方向信息也很重要,这里就用上了。根据圆的性质,圆的半径一定在垂直于圆的切线的直线上,也就是说,在圆上任意一点的法线上。这样,解决上面的问题,我们仍采用2维的参数空间,对于图像上的每一前景点,加上它的方向信息,都可以确定出一条直线,圆的圆心就在这条直线上。这样一来,问题就会简单了许多。
问题:实际上这种处理方式存在精度问题,即实际场景中由于噪声、边缘断裂等原因往往不能得到精确边缘方向!
b。同样是利用边缘点的信息,但是引入边缘方向误差Δφ,根据当前图像空间点x的边缘方向φ(x),对映射到参数空间(a,b)的部分圆参与累计,即:
a = x1 - R*cos(φ(x)),
b = x1 - R*cos(φ(x)),
φ(x) ∈[ φ(x) - Δφ,φ(x) + Δφ ]
(详见图像处理、分析与机器视觉P156)

霍夫变换到广义霍夫变换
Tipps:
Ballard (1981) 的广义霍夫变换最精妙之处在于为参数增加了两个关联,使得有平移和旋转(无缩放)的情况只需要遍历一个参数,三个参数分别是图形的中心坐标(横纵),旋转角度(相对参考图形),Ballard 的算法预先把参考图形边缘点对中心的径向量保存起来,利用待搜索图形边缘点的梯度方向(用相对坐标轴的角度表示)作为索引找到相应的径向量,加上该量后就完成了投射,所以要遍历的参数只有旋转角度,所以说有两个关联。当然如果加上缩放就要遍历两个参数,这也只是和霍夫检测圆的规模一样而已。

三。区别

Hough变换与Radon变换的联系与区别

Hough变换把图像空间中给定的曲线按曲线的参数表达式变换成参数空间中的点,然后通过在参数空间中寻找峰值来达到在图像空间中寻找曲线的目的。可以使用Hough变换来寻找图像中的直线。

Radon变换则以线积分的形式把图像空间投影到ρθ空间(等同于直线的参数空间)。

直线Hough变换与Radon变换的区别在于前者是直线参数变换的离散形式,而后者则是直线参数变换的连续形式。所以Hough变换直接应用在二值图像上,而Radon变换直接应用在灰度图像上。另外,由于二值图像只需要处理前景或者背景像素,所以Hough变换速度一般更快。Hough变换通常用在几何形状检测、文档版面分割等领域。

而Radon变换也有独特的优势。由于二值图像的不连续性,表面上看Hough变换结果中峰值位置明显,效果比Radon变换好,但实际上由于通常意义上难以对一幅图像进行恰当的二值分割,所以在一般情况下Radon变换要比Hough变换更精致而且准确。Radon变换是全面的变换,可以从Radon变换的结果重建变换前的图像。所以在断层扫描中大量使用了Radon变换及其逆变换。

你可能感兴趣的:(图像处理)