ドキュメンテーション

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

para2fan

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

構文

F = para2fan(P, D)
I = para2fan(..., param1, val1, param2, val2,...)
[F, fan_positions, fan_rotation_angles] = fan2para(...)

説明

F = para2fan(P, D) は、パラレル ビーム データ P をファン ビーム データ F に変換します。P の各列には、特定の回転角におけるパラレル ビーム センサーのサンプルが含まれています。D は、ファン ビーム頂点から投影の取得に使用された回転の中心までの距離 (ピクセル単位) です。

センサーを 1 ピクセル間隔で配置するとします。パラレル ビーム回転角は、[0, 180] 度の範囲に等間隔で配置するとします。計算されるファン ビーム回転角は、パラレル ビーム回転角と同じ間隔で、[0, 360] 度の範囲に配置されます。計算されるファン ビーム角は、センサーの間隔によって暗黙的に決まる最小角度となる間隔で、等間隔に配置されます。

I = para2fan(..., param1, val1, param2, val2,...) は、para2fan 変換のさまざまな特性を制御するパラメーターを指定します。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。既定値は次のように中かっこで囲まれています。{default}。パラメーターには次のようなものがあります。

パラメーター

説明

'FanCoverage'

投影データの計算に使用される回転角度の範囲。

取りうる値は以下のとおりです。{'cycle'} または'minimal'

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

'FanRotationIncrement'

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

'FanCoverage''cycle' の場合、'FanRotationIncrement' は 360 の倍数でなければなりません。

'FanRotationIncrement' が指定されていない場合、パラレル ビーム回転角と同じ間隔に設定されます。

'FanSensorGeometry'

センサーの配置。次のいずれかの値に指定します。

'arc' または 'line'

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

'FanSensorSpacing'

ファン ビームの間隔を指定する正の実数スカラー。値の解釈は、'FanSensorGeometry' の設定に依存します。

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

'FanSensorGeometry''line' の場合、値は線形の間隔をピクセル単位で定義します。

'FanSensorSpacing' が指定されていない場合、既定の設定は次のように 'ParallelSensorSpacing' によって暗黙的に決まる最小値になります。

'FanSensorGeometry''arc' の場合、'FanSensorSpacing' は次のようになります。

  180/PI*ASIN(PSPACE/D)

ここで、PSPACE'ParallelSensorSpacing' の値です。

'FanSensorGeometry''line' の場合、'FanSensorSpacing' は次のようになります。

 D*ASIN(PSPACE/D)

'Interpolation'

パラレルビーム データとファンビーム データの間で使用される内挿のタイプ。次のいずれかの値に指定します。

'nearest' - 最近傍点

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

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

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

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

'ParallelCoverage'

回転の範囲。次のいずれかの値に指定します。

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

'halfcycle' — パラレル データの範囲は 180 度 (既定の設定)

'ParallelSensorSpacing'

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

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

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

[F, fan_positions, fan_rotation_angles] = fan2para(...) は、'FanSensorGeometry''arc' の場合、fan_positions のファン ビーム センサーの測定 "角度" を返します。'FanSensorGeometry'が 'line' の場合、fan_positions には、センサーのラインに沿ったファン ビーム センサーの "位置" が含まれています。fan_rotation_angles には回転角が含まれています。

クラス サポート

PD は、double または single にすることができます。非スパースでなければなりません。他の数値入力引数は double でなければなりません。出力引数は double です。

すべて折りたたむ

パラレル ビーム投影を生成します。

ph = phantom(128);
theta = 0:180;
[P,xp] = radon(ph,theta);
imshow(P,[],'XData',theta,'YData',xp,'InitialMagnification','fit')
axis normal
title('Parallel-Beam Projections')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(gca,hot), colorbar

ファン ビーム投影に変換します。

[F,Fpos,Fangles] = para2fan(P,100);  
figure
imshow(F,[],'XData',Fangles,'YData',Fpos,'InitialMagnification','fit')
axis normal
title('Fan-Beam Projections')
xlabel('\theta (degrees)')
ylabel('Sensor Locations (degrees)')
colormap(gca,hot), colorbar

R2006a より前に導入

この情報は役に立ちましたか?