基于带有派克和差分加权的扇形束滤波背投影进行 CT 图像重建(Matlab代码实现)

本文介绍了使用Matlab实现的扇形束滤波CT图像重建过程,包括读取sinogram数据、设置参数、对数据进行预处理、使用FFBP算法进行重构,并提供了权重选择。参考了张朋和张兆田关于CT重建算法的研究。
摘要由CSDN通过智能技术生成

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

本代码包含使用扇形束滤波背投的CT图像重建。可以应用适当的加权措施,如差分和派克加权。重构算法也适用于短扫描协议。​

📚2 运行结果

主函数部分代码:

%% Read Sinogram 
​
clear  
clc
fileid = fopen('Sample_sinogram.sino','rb'); 
proj = fread(fileid,[140,inf],'float32'); 
fclose(fileid);
%proj=fliplr(proj);  % Apply this as per requirement to flip the sinogram
​
%% Reconstruction Parameters
​
detector_rows = 1;
SOD = 100; 
SDD = 200;
Fan_angle = 28; 
start_angle = -14; 
total_angle = 180 + Fan_angle; 
OutputSize = 256;
Filter = 'shepp-logan';
weighting = 'parker'; % Parker or differential weighting can be applied.
Norg=size(proj,1);
​
%% Projection data from logarithmic transformation of intensity ratio
​
[Max_Intensity,Index] = max(proj(:,:));
X =log(max(ind2sub(size(proj),Max_Intensity)));
Y=log(proj); 
Log=X-Y; 
​
% Log=proj; % For Pre-Transformed data
​
%% FFBP Reconstruction
​
[Reconstruction, Bp_RotationIncrement, Fan_sensor_spacing,Bp_spacing] = ...
                      FFBP_Weighted(Log, start_angle, SOD, SDD, Fan_angle, Norg,...
                                    weighting, OutputSize, total_angle,Filter); 
Reconstruction(isnan(Reconstruction)) = 0;
Reconstruction = Reconstruction*Fan_sensor_spacing*Bp_spacing;
​
%% Write to file
​
fileid = fopen('Reconstruction.raw','w+'); 
wrt = fwrite(fileid,Reconstruction,'float32'); 
fclose(fileid);
​

🎉3 参考文献

​[1]张朋,张兆田.几种CT图像重建算法的研究和比较[J].CT理论与应用研究,2001(04):4-9.

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值