ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ifanbeam

逆ファンビーム変換

説明

I = ifanbeam(F,D) は、F 内のファンビーム投影データからイメージ I を再構成します。F の各列には、ある回転角でのファンビーム投影データが格納されます。センサー間の角度は一様でファンビーム回転角間の増分に等しいと仮定します。D はファンビーム頂点から回転中心までの距離です。

I = ifanbeam(F,D,Name,Value) は、再構成のさまざまな特性を制御する名前と値のペアを使用します。引数名は省略形でもかまいません。大文字と小文字は区別されません。

[I,H] = ifanbeam(___) はフィルターの周波数応答 H も返します。

すべて折りたたむ

サンプル イメージを作成します。関数 phantom はファントム頭部イメージを作成します。

ph = phantom(128);

ファントム頭部イメージのファンビーム変換を作成します。

d = 100;
F = fanbeam(ph,d);

ファンビーム表現からファントム頭部イメージを再構成します。元のイメージと再構成したイメージを表示します。

I = ifanbeam(F,d);
imshow(ph)

figure
imshow(I);

サンプル イメージを作成します。関数 phantom はファントム頭部イメージを作成します。

ph = phantom(128);

イメージのラドン変換を作成します。

P = radon(ph);

変換をパラレル ビーム投影からファンビーム投影に変換します。

[F,obeta,otheta] = para2fan(P,100,... 
                            'FanSensorSpacing',0.5,...
                            'FanCoverage','minimal',...
                            'FanRotationIncrement',1);

ファンビーム データからイメージを再構成します。

phReconstructed = ifanbeam(F,100,... 
                           'FanSensorSpacing',0.5,...
                           'Filter','Shepp-Logan',...
                           'OutputSize',128,... 
                           'FanCoverage','minimal',...
                           'FanRotationIncrement',1);

元のイメージと変換後のイメージを表示します。

imshow(ph)

figure
imshow(phReconstructed)

入力引数

すべて折りたたむ

ファンビーム投影データ。numsensors 行 numangles 列の数値行列として指定します。numsensors はファンビーム センサーの数で、numangles はファンビーム回転角の数です。F の各列には 1 つの回転角のファンビーム センサーのサンプルが格納されます。

データ型: double | single

ファンビーム頂点から回転中心までの距離 (ピクセル単位)。正の数値として指定します。ifanbeam は、回転の中心が投影の中心点であると仮定し、ceil(size(F,1)/2) として定義します。図は、あるファンビーム投影のファンビーム頂点に関する D を示しています。

データ型: double | single

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: I = ifanbeam(F,D,'FanRotationIncrement',5)

ファンビームの回転範囲。'FanCoverage' と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

  • 'cycle' — 全範囲 [0, 360) 度にわたり回転します。

  • 'minimal' — オブジェクトを表すために必要な最小範囲を回転します。

ファンビーム回転角の増分 (度単位)。'FanRotationIncrement' と正のスカラーで構成されるコンマ区切りのペアとして指定します。

データ型: double

ファンビーム センサーの配置。'FanSensorGeometry' と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

意味

'arc'

センサーは、回転中心から D の距離で円弧状に等角度で配置されます。

FanSensorSpacing は角度の間隔を度単位で定義します。

'line'

センサーは、x' 軸に平行なラインに沿って等間隔に配置されます。最も近いセンサーは回転中心から距離 D の位置にあります。

FanSensorSpacingx' 軸上のファンビーム間の距離をピクセル単位で定義します。

ファンビーム センサーの間隔。'FanSensorSpacing' と正のスカラーで構成されるコンマ区切りのペアとして指定します。

  • FanSensorGeometry'arc' の場合、FanSensorSpacing は角度の間隔を度単位で定義します。

  • FanSensorGeometry'line' の場合、FanSensorSpacing はファンビーム間の線形距離をピクセル単位で定義します。線形間隔は、x' 軸上で測定されます。

データ型: double

周波数領域でのフィルター処理で使用するフィルター。'Filter' と次の表のいずれかの値で構成されるコンマ区切りのペアとして指定します。詳細は、iradon を参照してください。

説明

'Ram-Lak'

Cropped Ram-Lak またはランプ フィルター。このフィルターの周波数応答は | f | です。このフィルターは、投影においてノイズに敏感なので、以下に示すフィルターの中から 1 つを使用することを推奨します。これらのフィルターは、Ram-Lak フィルターに高周波数を抑えるウィンドウを乗算しています。

'Shepp-Logan'

関数 sinc と Ram-Lak フィルターを乗算します。

'Cosine'

関数 cosine と Ram-Lak フィルターを乗算します。

'Hamming'

ハミング ウィンドウと Ram-Lak フィルターを乗算します。

'Hann'

ハン ウィンドウと Ram-Lak フィルターを乗算します。

'None'フィルター処理を行いません。ifanbeam はフィルター処理されていないデータを返します。

データ型: char | string

周波数軸を再スケーリングするスケール係数。'FrequencyScaling' と (0, 1] の範囲の正の数値で構成されるコンマ区切りのペアとして指定します。'FrequencyScaling' が 1 未満である場合、フィルターは、正規化周波数の周波数範囲 [0,FrequencyScaling] に適合するように圧縮されます。FrequencyScaling を超える周波数については、すべて 0 に設定されます。詳細は、iradon を参照してください。

データ型: double

パラレルビーム データとファンビーム データの間で使用される内挿のタイプ。'Interpolation' と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

'nearest' - 最近傍点

'linear' — 線形 (既定の設定)

'spline' — 区分的 3 次スプライン

'pchip' — 区分的 3 次エルミート (PCHIP)

データ型: char | string

再構成イメージのサイズ。'OutputSize' と正の整数で構成されるコンマ区切りのペアとして指定します。イメージには同じ数の行と列が含まれます。

OutputSize を指定した場合、ifanbeam は、イメージを大きくするか、または、小さくしますが、データのスケーリングには変化がありません。

メモ

関数 fanbeam を使用して投影を計算した場合、再構成イメージのサイズは元のイメージと異なる場合があります。

OutputSize を指定しない場合、サイズは以下によって自動的に計算されます。

OutputSize = 2*floor(size(R,1)/(2*sqrt(2)))

ここで、Riradon によって使用されるパラレルビーム投影データの長さです。詳細は、アルゴリズムを参照してください。

データ型: double

出力引数

すべて折りたたむ

再構成イメージ。2 次元数値行列として指定します。

フィルターの周波数応答。数値ベクトルとして返されます。

データ型: double

ヒント

  • 逆ファンビーム再構成を実行するには、投影データ F を計算するために使用したものと同じパラメーターを ifanbeam に指定しなければなりません。fanbeam を使用して投影を計算する場合、ifanbeam を呼び出すときにパラメーターが一致していることを確認してください。

アルゴリズム

ifanbeam はファンビーム データをパラレル ビーム投影に変換し、フィルター補正逆投影アルゴリズムを使用して逆ラドン変換を行います。フィルターは周波数領域で直接設計され、投影の FFT が乗算されます。投影は、空間領域でのエイリアシングを避けて FFT の速度を上げるために、フィルター処理を行う前に 2 のべき乗になるようにゼロ パディングされます。

参照

[1] Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.

R2006a より前に導入