利用上一篇获得的二维投影重建三维数据:Matlab三维计算机断层投影模拟
先获取投影数据和准备
clc,clear
path ='/folder'; % 设定输入文件夹
filename = [path filesep '*.mat']; % 定义路径
files=dir(filename);
L = length(files); % 获得文件数目
all_theta = zeros(1,L); % 定义一个空向量收集投影角度
load([path filesep files(2).name]); % 上传一个文件数据,查看内容
an = ar/n; % 计算角度的增量
endang = ar + startang;
[l,z] = size(shifted_noisy_proj2d); % 获得二维投影的大小.
sum_proj1d = zeros(l,L); % 准备一个矩阵收集一维投影.
N = 2*floor(l/(2*sqrt(2))); %计算重建二维图像的长宽值,我们这里都是假定正方形.
img2d_new = zeros(N); % 准备一个空的二维矩阵.
img3d_new = zeros(N,N,z); % 准备一个空的三维矩阵.
% 为重建图像设定坐标系.
dist = (1:N)-ceil(N/2); % 到重建图像中心的距离
x = repmat(dist, N, 1); % x轴
y = rot90(x); % y轴
ctrIdx = ceil(l/2); % 投影的中心的距离
imgDiag = 2*ceil(N/sqrt(2))+1; %图