【问题标题】:MATLAB How do I interpolate pol2cart complex numbers onto a cartesian grid?MATLAB 如何将 pol2cart 复数插值到笛卡尔网格上?
【发布时间】:2011-10-06 05:39:59
【问题描述】:

我的任务是从正弦图创建 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 在这里如何工作。

【问题讨论】:

标签: matlab interpolation coordinate-systems


【解决方案1】:

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

相反,您可能应该使用 iradon()。 Please see my other answer about using iradon() at this page.

我还建议您免费阅读“计算机断层成像原理”第 3 章,available here。过滤后的反投影算法从第 62 页开始。如果这太难了,您可以阅读this student project

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2023-03-14
    • 2012-04-07
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多