我有一个从Sinogram创建2D图像的任务。我有以下内容:
function recon = fourier(sinogram, interpolation)
tic;
[rows cols] = size(sinogram);
% calculate 1D FFT of the sinogram
% fftSino = ...;
fftSino = fft(sinogram);
% prepare the coordinate system change
cartesianX = 0:1/(cols-1):1;
cartesianY = -1:2/(rows-1):1;
[x y] = meshgrid(-1:2/(rows-1):1);
ySign = y < 0;
polarAngle = ~ySign - atan2(y, x) / pi;
polarRadius = sqrt(x.^2 + y.^2) .* (ySign - ~ySign);
%%
% perform coordinate system change
fftSinoInterp = pol2cart(polarAngle, polarRadius);
但现在我不知道如何将复数插值到我的笛卡尔网格上。 任何人都可以给我一个关于什么功能使用什么参数的提示? 我查看了interp2,但我无法弄清楚X Y Z的用途。我也不知道interp1或TriScatteredInterp如何在这里工作。
答案 0 :(得分:1)
我认为你真的想尝试过滤反投影。您没有指定用于生成正弦图的角度,因此您的函数声明不完整;如果您不知道使用了什么角度,甚至可能无法进行重建。 pol2cart()和其余代码在重建图像的上下文中没有做任何有用的事情。
相反,你可能应该使用iradon()。 Please see my other answer about using iradon() at this page
我还建议您免费阅读“计算机断层扫描成像原理”第3章available here。过滤后的反投影算法从第62页开始。如果这太难了,您可以阅读this student project。