ドキュメンテーション

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

fan2para

ファンビーム投影をパラレルビームに変換

構文

P = fan2para(F,D)
P = fan2para(..., param1, val1, param2, val2,...)
[P ,parallel_locations, parallel_rotation_angles] = fan2para(...)

説明

P = fan2para(F,D) はファンビーム データ F をパラレルビーム データ P に変換します。D はファンビーム頂点から投影の取得に使用された回転の中心までの距離 (ピクセル単位) です。

P = fan2para(..., param1, val1, param2, val2,...)fan2para 変換のさまざまな面を制御するパラメーターを指定します。次の表に、このパラメーターをまとめています。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

パラメーター

説明

'FanCoverage'

ビームが回転する範囲を指定する文字列。

'cycle' - 全範囲 [0,360) にわたり回転します。これは既定の設定です。

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

'FanRotationIncrement'

ファンビーム投影の回転角の増分を指定する正の実数スカラー (単位は角度)。既定値は 1 です。

'FanSensorGeometry'

センサーの配置位置を指定する文字列。

'arc' — センサーは、回転中心から D の距離で円弧状に等間隔で配置されます。既定値は 'arc' です。

'line' — センサーはライン上に等間隔で配置され、最接近点は回転中心から D の距離です。

詳細は、fanbeam を参照してください。

'FanSensorSpacing'

ファンビーム センサーの配置間隔を指定する正の実数スカラー。値の解釈は 'FanSensorGeometry' の設定に応じて異なります。

'FanSensorGeometry''arc' (既定の設定) に設定した場合、この値が角度間隔を定義します (度単位)。既定値は 1 です。

'FanSensorGeometry''line' の場合、この値が線形間隔を指定します。既定値は 1 です。詳細は、fanbeam を参照してください。

    メモ:    この線形間隔は、x' 軸上で測定されます。F の各列 colx' 軸の方向は、x 軸から反時計回りに fan_rotation_angles(col) 度の位置に設定されます。両軸の原点がイメージの中心ピクセルになります。

'Interpolation'

パラレルビーム データとファンビーム データの間で使用される内挿のタイプを指定するテキスト文字列。

'nearest' - 最近傍点

{'linear'} - 線形

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

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

'v5cubic' — MATLAB® 5 の 3 次内挿法

'ParallelCoverage'

回転範囲を指定するテキスト文字列。

'cycle' — パラレル データの範囲は 360 度です。

{'halfcycle'} — パラレル データの範囲は 180 度です。

'ParallelRotationIncrement'

パラレル ビーム回転角の増分を指定する正の実数スカラーで、度単位で設定します。パラレル ビーム角は、PAR_ROT_INC の増分で、[0,180) 度の範囲で計算されます。ここで、PAR_ROT_INC'ParallelRotationIncrement' の値です。

180/PAR_ROT_INC
は整数でなければなりません。

'ParallelRotationIncrement' が指定されていない場合、増分はファン ビーム回転角の増分と同じであると見なされます。

'ParallelSensorSpacing'

パラレル ビーム センサーの間隔をピクセル単位で指定する正の実数スカラー。センサー位置の範囲はファン角度の範囲によって暗黙的に決まり、次式により与えられます。

[D*sin(min(FAN_ANGLES)),...
 D*sin(max(FAN_ANGLES))]

'ParallelSensorSpacing' が指定されていない場合、間隔は等間隔であると見なされ、ファン角度によって暗黙的に決まる最小間隔に設定され、ファン角度によって暗黙的に決まる範囲でサンプリングされます。

[P ,parallel_locations, parallel_rotation_angles] = fan2para(...) はパラレルビーム センサーの位置を parallel_locations、回転角を parallel_rotation_angles で返します。

クラス サポート

入力引数 FDdouble または single であり、非スパースでなければなりません。その他の数値入力はすべて double です。出力 Pdouble です。

対称パラレルビーム データを作成し、ファンビーム データを求め、そのファンビーム データを使用してパラレルビーム データを復元します。

ph = phantom(128);
theta = 0:179;
[Psynthetic,xp] = radon(ph,theta);
imshow(Psynthetic,[],...
       'XData',theta,'YData',xp,'InitialMagnification','fit') 
axis normal
title('Synthetic Parallel-Beam Data')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(hot), colorbar
Fsynthetic = para2fan(Psynthetic,100,'FanSensorSpacing',1);

元のパラレルビーム データを復元します。

[Precovered,Ploc,Pangles] = fan2para(Fsynthetic,100,...
                                 'FanSensorSpacing',1,...
                            'ParallelSensorSpacing',1);
figure
imshow(Precovered,[],'XData',Pangles,...
       'YData',Ploc,'InitialMagnification','fit') 
axis normal
title('Recovered Parallel-Beam Data')
xlabel('Rotation Angles (degrees)')
ylabel('Parallel Sensor Locations (pixels)')
colormap(hot), colorbar
この情報は役に立ちましたか?