当前位置:   article > 正文

Python问题解决二:使用Radon变换进行线检测_radon变换直线检测 python

radon变换直线检测 python

常用的线检测方法有Hough变换和Radon变换,其中Radon适用于信噪比较大的场合,尤其适用于X射线的医学图像处理中。

基于Hough变换的直线检测方法

基于Hough变换的直线检测方法步骤包括:

  1. 边缘检测
    常用的边缘检测方法包括Robert Cross算子,sobel算子,Prewitt算子,Canny算子等。

  2. 边缘增强
    上述边缘检测算子是基于梯度搜索方法,对图像中直线的残缺部分、噪声以及其它共存的非直线结构不敏感,检测边缘往往并不连续,存在离散点。因此,边缘增强对于直线检测来说是非常重要的。常见的边缘增强方法包括去噪,连接不连接边界,去除短边缘。以Canny算法为例,Canny设计了一个用于边缘检测最优预平滑滤波器的问题,后来他说明这个滤波器能够很好地的被一阶高斯导数核优化,另外他引入了非最大抑制概念,它是说边缘定义为在梯度方向具有最大梯度值的点。

  3. Hough变换
    在实际应用中,Hough变换通常采用参数方程
    r = xcos(q) +ysin(q)

  4. 寻找参数空间极值点,确定直线方程
    从公式可以看出,图像中的一个点对应参数平面中的一条直线,图像中的一条直线对应参数平面中的一个点。对图像上所有的点作霍夫变换,最终所要检测的直线对应的一定是参数平面中直线相交最多的那个点,这样就在图像中检测出了直线。

基于Radon变换的直线检测

基于Radon变换的直线检测方法步骤包括:

  1. 对数变换
    X射线衰减满足Beer定律。因此对于射线影像而言,对数处理的意义在去除背景的同时极大的提升了图像的对比度,充分保留了有用信息。
  2. Radon变换
  3. 寻找参数空间极值点,确定直线方程

相同点

Radon变换和Hough变换都是图像空间(笛卡尔坐标系)到参数空间(极坐标系)的映射,Hough变换可看成连续Radon变换的离散形式。

方法比较

抗噪能力

Hough变换对噪声敏感,图像中直线的残缺部分、噪声会使局部峰值点查找更为复杂,而Radon变换通过灰度图像沿着直线累加,减少噪声对直线检测的影响,更适用于弱信号检测。

计算复杂度

  1. Radon变换计算复杂度较低,并可通过GPU加速减少计算时间
    Radon变换等效于二维投影,在重建算法中已知成熟的加速策略(如将图像加载到纹理存储器),其计算时间可通过GPU大大减少。
  2. Hough计算量较大,非特征点的引入会极大的增加Hough变换的计算复杂度
    当输入数据稀疏(非零个数<5%)时,Hough变换的计算复杂度较低。因此Hough变换方法对边缘检测的要求较高,否则极大增加计算复杂度。

亚像素分辨率

  1. Radon变换支持亚像素分辨
    受有限尺寸焦点影响,X射线影像往往存在边界模糊。Radon变换作用于对数变换后的灰度图像,其结果包含了边界扩散引起的变化,可实现直线的亚像素检测。
  2. Hough变换不支持亚像素分辨
    Hough变换处理对象是离散的二值图像,不支持亚像素分辨

结论

Radon适用于信噪比较大的场合,尤其适用于X射线的医学图像处理中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/90711
推荐阅读
相关标签
  

闽ICP备14008679号