Radon变换理论介绍与matlab实现--经验交流

来源:互联网 发布:linux挂载iso镜像 yum 编辑:程序博客网 时间:2024/05/17 08:18

 本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。


Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平面内的点映射到AB平面上,那么原来在XY平面上的一条直线的所有的点在AB平面上都位于同一点。记录AB平面上的点的积累厚度,便可知XY平面上的线的存在性。这便是大家所公认的Radon变换的实质所在。

        

上述听起来很在理也很简单,但却少了直观性。那么,详细的数学理论是什么呢?请看下文:


如果我们将图像中心设为原点,用\rho(直线到原点的距离)和\theta(某一特定方向)代替ab,即,理解为图像在空间的投影,如图-1所示,用参数表示上述直线,则有:



假定有一个函数f(x,y),如图-2所示,那么该函数过直线L区域的积分即为:


其中ds是该直线的微分。
上述关于xy的积分是很容易求解的,其中一种求解技巧是借助Delta函数,上述积分可以写为:
 

因而,给定一组\rho \theta那么就可以得出一个沿L(\rho,\theta)的积分值。因此,Radon变换就是函数f (x,y)的线积分,如图-3所示。


 假如有很多平行于L的线,他们有相同的\theta,径向坐标\rho却不同,这就很好的印证了matlab自带的radon变换命令中每个\theta角度的Radon变换结果是有两个输出项R(特定角度下的Radon变换值也即线积分值)与xp,一一对应(xp可缺省)。我们对每一条这样的平行线都做f(x,y)的线积分,会产生很多投影线,如图-4所示。也就是说对一幅图像在某一特定角度下的Radon变换会产生N个线积分值(Radon变换),而每一个线积分值会对应一个径向坐标xp,如图-5所示。各个角度的Radon变换值汇总在一起就构成一幅Radon变化图。


 Radon变换将原图像空间中的直线映射为\rho \theta 空间中的点(线积分值),图像中高灰度值的直线会在\rho \theta空间形成亮点,而低灰度值的线段在\rho \theta空间形成暗点。因而,对直线的检测可转化为在变换区域对亮点、暗点的检测,另外,Radon变换的逆变换常用于医学CT断层成像图像的重建。


下面给出我个人的几个简单的Radon变换与其重构matlab实验结果:


另外:我实验的图像是长方形的,发现重构的结果内容显示并不全,研究了matlab内置的radon逆变换之后,稍微做了显示更改这才显示完全。

以上只是我个人对radon变换的理解,并不具权威性,如有疏漏或者不严谨的地方,希望大家能够指出,jojo会努力修正的~~
谢谢各位大同行!


0 0
原创粉丝点击