Radon变换与Matlab代码

Radon重构在CT图像重构中的运用

 

背景:ct是医学上用来检查人身体的一种机器,是靠光管发光产生X射线来检查的。

正在上传…重新上传取消

CT的成像过程可以简化为下图

成像效果图如下,左图可以直观理解为在面对着人体的正视图,右图是左图中的其中一层切片,得到的截面图。

图三

在CT扫描中,对于一层的扫描信息,可以通过Radon变换的方式,将截面图反推出来。

Radon变换原理:

对于这张图,我们可以看到source处是一个一维的光源,相当于一条线,从光源处发射平行光出来,通过中间的方块,这个方块就对应着我们的被测截面。相当于图三中的右图。

如何对这个方块区域成像呢?

我们首先定义x轴y轴为我们的物空间,通过光源发出的光经过物体的吸收,在sensors成的像,像的空间我们定义为Radon空间。光源强记为I0,Sensor上的光强记为I1。

如何定义被吸收的光和光源光之间的关系呢?

借用百度上的定义:

布格-朗伯-比尔定律,是描述物质对某一波长光吸收的强弱与吸光物质的浓度及其液层厚度间的关系。

I1=I0e-KLC

在组织中,我们定义µ为吸收系数,µ=KC。因此,该公式可以变换为:

I1=I0e-μx,ydL

这一步的变换是对于不同位置的组织有不同的吸收系数,而我们利用积分变换就行。

然后我们利用数学推理一下Radon空间

当我们的source每个点都会在垂直于光源的接收面上产生一个I1,而此时图像是μ(x,y),我们定义的Radon变换目的是把图像上的点的信息,转化为利用光源接收面可以探测到的信息,即为不同的光源角度下,接收面上的光强大小g(θ,R)

  1. 单点变换

我们先通过一张图叙述一下对于一个点在Radon空间中的变换。

这个图怎么看呢?首先是(r,φ)是我们要进行变化的点,R线即为我们定义的Radon空间,这个空间是由360°组成的,以此要对每个角度下,求出(r,φ)对应的值,将所有的值的集合就是我们定义的Radon空间。

那我们首先在MATLAB中演示一下:

A = zeros(120,120);

A(6,6)=1;

figure;imagesc(A);

axis image;

title('image')

首先是定义一个120*120的平面,把点6*6当作我们即将变换的点,我们的原点定义在了左上角,以此该点的极坐标是(62,-45°)直角坐标是(6,6)。

然后呢定义出不同的角度。我们要从0-360°计算Radon空间的值。

theta1 = 0:0.5:360

利用R=xcosθ+ysinθ即可求出不同角度下R的值

x=6;y=6;

theta1 = 0:0.5:360

theta1=theta1.*pi/(180)

R=x.*cos(theta1)+y.*sin(theta1)

plot(theta1,R)

我们可以得到对于一个点来说,其Radon空间中的图像是一个正弦形式的。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值