【图像处理】平行线投影radon变换

原创 2016年06月29日 13:15:38

  从一个角度,用光源照射对象物体,屏幕上会形成对象物体的影子;如果物体是半透明的,那么影子便有灰度而不是纯黑的,这说明屏幕上的像可以反映物体内部对可见光的衰减作用。我们从落于[0~π]的一系列连续角度照射物体,形成一系列的像,这些像包含物体结构特征信息,基本上可以通过这些像还原物体的形状特征,如果物体是半透明的,那么物体内部的结构也可以还原出来。物体原始形状变换生成这些投影像,称为radon变换;从这些像还原物体形态,称为逆radon变换。人体对可见光是不透明的,但对X光是半透明的,因此CT可以发射X光照射人体,生成人体内部结构的图像信息。
  radon变换的公式是:

xcosθ+ysinθ=ρg(ρ,θ)=f(x,y)δ(xcosθ+ysinθρ)dxdy

本质上就是沿着xcosθ+ysinθ=ρ确定的多条平行射线,建立法线方向为θ的线段上的投影。一个比较简单的实现是,让图像均匀旋转θ角度,然后计算x轴上的投影。假设角度区间[0~π]被分割为n份,投影线段长m,则最终我们获取m×n大小的二维矩阵,称为投影矩阵。

  radon反变换的公式是:

f(x,y)=π0g(xcosθ+ysinθ,θ)dθ
该反变换操作比较简单,但是计算量大,且输出图像模糊有光晕。

  为了得到清晰的图像,我们需要进行频域滤波。首先我们知道二维傅里叶变换对为:

F(u,v)=f(x,y)ej2π(ux+vy)dxdyf(x,y)=F(u,v)ej2π(ux+vy)dudv

这里引入傅里叶切片定理,其中ω是频率分量:
G(ω,θ)=g(ρ,θ)ej2πωρdρ=f(x,y)δ(xcosθ+ysinθρ)ej2πωρdxdydρ=f(x,y)[δ(xcosθ+ysinθρ)ej2πωρdρ]dxdy=f(x,y)ej2πω(xcosθ+ysinθ)dxdy=F(ωcosθ,ωsinθ)

这说明一个投影的一维傅里叶变换,是二维投影矩阵的二维傅里叶变换的一个切片。上述最后一步执行换元操作。
频域逆变换为:

f(x,y)=F(ωcosθ,ωsinθ)dωcosθdωsinθdωcosθdωsinθ=ωdωdθf(x,y)=F(ωcosθ,ωsinθ)ωdωdθ=2π00G(ω,θ)ej2πω(xcosθ+ysinθ)ωdωdθcos(θ+π=cosθ,sin(θ+π=sinθG(ω,θ+π)=f(x,y)ej2πω(xcosθysinθ)dxdy=f(x,y)ej2π(ω)(xcosθ+ysinθ)dxdy=G(ω,θ)f(x,y)=π00G(ω,θ)ej2πω(xcosθ+ysinθ)ωdωdθ+π00G(ω,θ)ej2π(ω)(xcosθ+ysinθ)ωdωdθlet(ωt)f(x,y)=π00G(ω,θ)ej2πω(xcosθ+ysinθ)ωdωdθ+π00G(t,θ)ej2πt(xcosθ+ysinθ)tdtdθ=π0G(ω,θ)ej2πt(xcosθ+ysinθ)|ω|dωdθ

我们可以看出上述式子推导过程中利用了[0~2π]的数据,虽然最后只需要[0~π]的投影数据,但是最终反滤波结果多了一项|ω|。这里面有什么更深层次的数学原理,我确实是不知道的。相比直接空间积分的结果,傅里叶切片重建效果更好的原因,可能有:

  • 我们之前进行radon投影时,看到[0~π]和[π~ 2π]的θ角度下得到的投影是互为镜像,粗看认为信息是重复的,于是贸然舍弃一半,只计算了[0~π]角度的投影数据,这可能隐性地造成了数据不全。
  • 直接进行空间积分变换,可能造成不同角度投影之间发生混淆,导致产生模糊和光晕

在最终式子中,积分计算|ω|项是不可能的,该项不可积。我们可以通过引入窗函数,截断|ω|项或者使用其他近似的窗函数,计算积分计算式并滤波,从而得到一个相对较好的结果。

滤波反投影重建逆radon变化步骤如下:

  • 计算每个投影的一维傅里叶变换
  • 使用截断的|ω|项或者类似的窗口函数进行滤波,得到新的一维傅里叶变换数据
  • 计算傅里叶反变换,获得原图

原图
简单滤波
简单滤波的结果
matlab
Matlab重建结果,注意有条纹

Matlab的radon逆变换效果好,Matlab的牛逼只有研究过的人才懂,自己实现不了的痛也只有研究过的人才懂。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

Radon变换简介

radon变换介绍

简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴...

Radon变换入门matlab CT原理

http://hi.baidu.com/hi9394/blog/item/0d492b8bfd714700c8fc7aa9.html 简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累...

Radon变换

转自:http://baike.baidu.com/view/2435650.htm        两维情况下radon变换大致可以这样理解:一个平面内沿不同的直线(直线与原点的距离为d,方向角为a...

Radon变换

Radon变换 本文转自: http://blog.sina.com.cn/s/blog_73ee929c01010f36.html  两维情况下radon变换大致可以这样理解:一个平面内沿不同...

Radon变换实现

1917年澳大利亚数学家Radon首先论证了通过物体某一平面的投影重建物体该平面两维空间分布的公式。他的公式要求获得沿该平面所有可能的直线的全部投影(无限集合)。所获得的投影集称为Radon变换。由R...
  • utimes
  • utimes
  • 2013-12-19 11:32
  • 4129

图像算法之一:Randon变换

1.原理: Radon变换用来计算图像矩阵在特定方向上的投影。二维函数投影是一组线积分,Radon变换计算一定方向上平行线的积分,平行线的间隔为1个像素。Radon变换可以旋转图像的中心到不同角度,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)