我正在做一段Matlab代码来重建径向三维核磁共振数据。但是,由于Matlab内置的氡功能只是2D,我必须将它们应用两次。在我的代码中进行第一次iradon变换后,我得到了成像对象的投影,因为它们应该看起来(从不同的角度)。但是在第二次iradon变换之后,我没有看到对象的正确重建(只是很多噪声和一些模糊的东西,对象应该是)。
我的解决方案尝试如下所示。
输入数据是自由感应衰减或fid:fid(NP,nv,nv2)其中NP是投影数量,nv是θ角度增量的数量,nv2是角度增量的数量。
在FID上执行ifft将为每个θ角度提供尺寸proj(NP,phi)的正弦图。
执行第一个iradon,为每个θ角度提供尺寸为I(r,x)的滤波和未滤波反投影。 (因此I3和I4具有尺寸(r,z,theta))
执行最后一次iradon变换后,应该渲染尺寸为I(x,y,z)的重建3D图像
I3=[];
I4=[];
I5=[];
I6=[];
for k=1:1:nv2
FID = squeeze(fid(:,:,k));
proj=abs(fftshift(ifft(ifftshift(FID),[],1)));
I1 = imrotate(iradon(proj,theta,'v5cubic','none',1,2*NP),-90);
I2 = imrotate(iradon(proj,theta,'v5cubic','Ram-Lak',1,2*NP),-90);
I3(:,:,k) = I1;
I4(:,:,k) = I2;
end
for k=1:size(I3,2)
I5(:,:,k) = iradon(squeeze(I3(:,k,:)),phi,'v5cubic','none',1,2*NP);
I6(:,:,k) = iradon(squeeze(I4(:,k,:)),phi,'v5cubic','Ram-Lak',1,2*NP);
end