ドキュメンテーション

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

para2fan

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

説明

F = para2fan(P,D) は、パラレルビーム データ P をファンビーム データ F に変換します。P の各列には、ある回転角でのパラレルビーム センサーのサンプルが含まれています。D はファンビーム頂点から回転中心までの距離です。

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

F = fan2para(P,D,Name,Value) は、データ変換の特性を制御する名前と値のペアを使用します。引数名は省略形でもかまいません。大文字と小文字は区別されません。

[F,fan_sensor_positions,fan_rotation_angles] = fan2para(___) は、ファンビーム センサーの位置を fan_sensor_positions で、回転角を fan_rotation_angles で返します。

すべて折りたたむ

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

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

入力引数

すべて折りたたむ

パラレルビーム投影データ。数値行列として指定します。P の各列には、ある回転角でのパラレルビーム データが格納されます。列数はパラレルビーム回転角の数を示し、行数はパラレルビーム センサーの数を示します。

データ型: double | single

ファン ビーム頂点から回転中心までの距離 (ピクセル単位)。正の数値として指定します。para2fan は、回転の中心が投影の中心点であると仮定し、ceil(size(F,1)/2) として定義します。D の値は ParallelSensorSpacing*(SIZE(P,1)-1)/2 以上でなければなりません。

図は、あるファンビーム投影のファンビーム頂点に関する D を示しています。

データ型: double | single

名前と値のペアの引数

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

例: F = para2fan(P,D,'FanRotationIncrement',5)

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

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

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

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

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

  • FanRotationIncrement を指定しない場合、既定値はパラレルビーム回転角に等しくなります。

データ型: double

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

意味

'arc'

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

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

'line'

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

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

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

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

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

FanSensorGeometry を指定しない場合、FanSensorSpacing の既定値は次のように ParallelSensorSpacing によって暗黙的に決まる最小値になります。

  • FanSensorGeometry'arc' の場合、FanSensorSpacing180/pi*ASIN(ParallelSensorSpacing/D) です。

  • FanSensorGeometry'line' の場合、FanSensorSpacingD*ASIN(ParallelSensorSpacing/D) です。

データ型: double

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

'nearest' - 最近傍点

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

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

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

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

  • 'cycle' — パラレル データの範囲は全範囲 [0, 360) 度です。

  • 'halfcycle' — パラレル データの範囲は [0, 180) 度です。

パラレルビーム センサーの間隔 (ピクセル単位)。'ParallelSensorSpacing' と正のスカラーで構成されるコンマ区切りのペアとして指定します。

データ型: double

出力引数

すべて折りたたむ

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

パラレルビーム投影データ。数値行列として返されます。F の各列には、ある回転角でのファンビーム データが格納されます。列数はファンビーム回転角の合計数を示し、fan_rotation_angles の長さに等しくなります。行数はパラレルビーム センサーの合計数を示し、fan_sensor_positions の長さに等しくなります。

データ型: double

ファンビーム センサーの位置。数値列ベクトルとして返されます。

  • 'FanSensorGeometry''arc' (既定の設定) の場合、fan_sensor_positions にはファンビーム センサーの測定角度が格納されます。

  • 'FanSensorGeometry''line' の場合、fan_sensor_positions にはセンサーのラインに沿ったファンビーム センサーの位置が格納されます。

データ型: double

ファンビーム回転角。数値行ベクトルとして返されます。

データ型: double

R2006a より前に導入