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 に答える