【图像重建】使用FDK的三维谢普洛根幻影重建(Matlab代码实现)

简介: 【图像重建】使用FDK的三维谢普洛根幻影重建(Matlab代码实现)

👨‍🎓个人主

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

Feldkamp,Davis and Kress(1984)提出一种基于圆轨道锥束重建的近似算法,这就 是我们现在的 FDK 算法。目前 FDK 是圆轨道锥束重建中最实用的算法。当锥角小于 5 度 的时候,可以得到不错的重建效果,但是随着锥角的增大 FDK 会带来越来越严重的伪影。 (图 4.1)

image.gif 编辑

锥束重建的几何结构如图 4.2 所示。

image.gif 编辑 image.gif 编辑

当扫描轨道在一个平面内时,比如圆轨道,锥束的投影数据是不完备的[8],因此只能进行近似重建。FDK算法实际上是二维扇束滤波反投影算法的三维推广,它首先对偏离中心平面的投影数据进行加权,然后利用类似与扇束算法的滤波反投影对物体进行重建。它具体过程可以分为以下两步[1]: 首先对投影数据进行加权滤波:

image.gif 编辑

在探讨使用FDK(Feldkamp, Davis, and Kress)算法进行三维谢普洛根幻影(Shepp-Logan Phantom)图像重建的研究时,我们可以从以下几个方面进行概述:

一、FDK算法概述

FDK算法是一种基于圆轨道锥束重建的近似算法,它实际上是二维扇束滤波反投影算法的三维推广。该算法在锥角较小(如小于5度)时,能够取得较好的重建效果。然而,随着锥角的增大,FDK算法可能会带来较为严重的伪影。FDK算法的具体过程主要包括对投影数据的加权滤波和滤波反投影重建两个步骤。

二、三维谢普洛根幻影

谢普洛根幻影(Shepp-Logan Phantom)是一种常用于计算机断层成像(CT)研究和算法验证的标准测试图像。该图像由多个椭圆和圆形组成,具有明确的边界和不同的灰度值,非常适合用于评估图像重建算法的性能。

三、使用FDK算法进行三维谢普洛根幻影重建的步骤

  1. 生成投影数据
  • 首先,使用Radon变换(或类似的投影方法)对三维谢普洛根幻影进行投影,生成一系列的投影数据。这些投影数据可以模拟CT扫描过程中探测器接收到的X射线强度信息。
  1. 加权滤波
  • 对投影数据进行加权滤波处理。这一步是为了校正由于扫描几何结构(如圆轨道扫描)导致的数据不完备性,并减少重建过程中的伪影。
  1. 滤波反投影重建
  • 使用滤波后的投影数据进行反投影重建。这一步骤类似于二维扇束滤波反投影算法,但需要在三维空间中进行。通过反投影,可以将投影数据转换回三维图像空间,从而得到重建后的三维谢普洛根幻影图像。

四、研究恩典

在使用FDK算法进行三维谢普洛根幻影重建的研究中,可以重点关注以下几个方面来体现研究的恩典(即研究的意义和价值):

  1. 算法性能评估
  • 通过与原始三维谢普洛根幻影图像进行对比,评估FDK算法在重建精度、伪影抑制等方面的性能。这有助于了解FDK算法在实际应用中的优缺点,并为其改进提供依据。
  1. 参数优化
  • 研究不同参数(如锥角、滤波器类型等)对FDK算法重建效果的影响,通过优化参数来提高重建图像的质量。这有助于发挥FDK算法的潜力,并推动其在更广泛领域的应用。
  1. 算法拓展与应用
  • 探索将FDK算法应用于其他类型图像或场景的可能性,如医学CT成像、工业无损检测等。通过拓展算法的应用范围,可以进一步推动相关领域的发展,并为社会带来更大的福祉。

综上所述,使用FDK算法进行三维谢普洛根幻影重建的研究不仅有助于评估算法性能、优化参数,还可以推动算法在更广泛领域的应用和发展。这一研究对于推动计算机断层成像技术的进步具有重要意义。

📚2 运行结果

image.gif 编辑

image.gif 编辑

部分代码:

n=180;%num of views,options 180,36,10

I = phantom(256);

M = 256;

% 对投影做傅里叶变换

R=radon(I,0:179);

width=length(R);

filter=2*[0:round(width/2-1), width/2:-1:1]'/width;

% 每一列做傅里叶变换

r_fft=fft(R,width);

% 每一列做傅里叶变换后滤波

r_fft_filter=r_fft.*filter;

%滤波后反变换(real取实部)

proj_ifft=real(ifft(r_fft_filter));

theta=linspace(0.5*pi,1.5*pi,180);

%反投影到x轴,y轴

fbp = zeros(256); % 假设初值为0

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]刘亮. 基于FDK的高精度锥束CT重建算法研究[D].中北大学,2007.

[2]郑晗. 用GPU加速基于FDK的全三维图像重建[C]//中国生物医学工程学会医学物理分会(Chinese Society of Medical Physics),北美华人医学物理师协会(North American Chinese Medical Physicist Association).长城2008国际医学物理大会资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
5月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
514 0
|
5月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
493 0
|
5月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
185 0
|
5月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
204 0
|
5月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
264 8
|
5月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
275 8
|
5月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
206 8
|
5月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
304 8
|
5月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
405 12
|
5月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
196 9

热门文章

最新文章