0

我的任务是从正弦图创建 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,但我无法弄清楚 XY Z 使用什么。我也不知道 interp1 或 TriScatteredInterp 如何在这里工作。

4

1 回答 1

1

我认为您确实在尝试进行过滤反投影。您没有指定用于生成正弦图的角度,因此您的函数声明不完整;如果您不知道使用了哪些角度,甚至可能无法进行重建。pol2cart() 和您的其余代码在重建图像的上下文中没有做任何有用的事情。

相反,您可能应该使用 iradon()。请在此页面上查看我关于使用 iradon() 的其他答案

我还建议您阅读“计算机断层成像原理”第 3 章,可在此处免费获得。过滤的反投影算法从第 62 页开始。如果这太难了,您可以阅读这个学生项目

于 2011-07-26T16:14:18.753 回答