2011-07-15 7 views
0

シノグラムから2D画像を作成する課題があります。私は以下を持っています:MATLAB複素数をデカルト格子に補間するにはどうすればよいですか?

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

interp2ヘルプページ - http://www.mathworks.com/help/techdoc/ref/interp2.html – ThP

答えて

1

私は、あなたが本当にろ過された逆投影をしようとしていると思います。サイノグラムを生成するためにどの角度が使われたかを指定しないので、関数の宣言は不完全です。どのような角度が使われたのかわからないと再構築できないこともあります。 pol2cart()とコードの残りの部分は、画像の再構成のコンテキストでは役に立ちません。

代わりに、おそらくiradon()を使用しているはずです。 Please see my other answer about using iradon() at this page

「コンピュータ断層撮影の原理」第3章available hereも無料でお読みください。ろ過された逆投影アルゴリズムは62ページから始まります。それが難しい場合は、this student projectを読むことができます。

関連する問題