Main Content

para2fan

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

説明

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

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

F = para2fan(P,D,Name,Value) は、データ変換の特性を制御する名前と値の引数を使用します。

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

すべて折りたたむ

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

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

Figure contains an axes object. The axes object with title Parallel-Beam Projections, xlabel theta blank (degrees), ylabel x' contains an object of type image.

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

[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

Figure contains an axes object. The axes object with title Fan-Beam Projections, xlabel theta blank (degrees), ylabel Sensor Locations (degrees) contains an object of type image.

入力引数

すべて折りたたむ

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

データ型: double | single

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

Fan-beam image geometry highlighting the distance D between the fan-beam vertex and the center of rotation

データ型: double | single

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: F = para2fan(P,D,FanRotationIncrement=5) は 5 度のファン回転角増分を指定します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: F = para2fan(P,D,"FanRotationIncrement",5) は 5 度のファン回転角増分を指定します。

ファンビームの回転範囲。"cycle" または "minimal" として指定します。

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

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

ファンビーム回転角の増分 (度単位)。正のスカラーとして指定します。

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

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

Fan-beam image geometry highlighting the angular separation of two successive fan-beam vertices by FanRotationIncrement degrees.

データ型: double

ファンビーム センサーの配置。"arc" または "line" として指定します。

意味

"arc"

センサーは、円弧状に等角度で配置されます。弧の中心はファンビーム頂点です。

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

Fan-beam image geometry highlighting the constant angular spacing between sensors in an arc

"line"

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

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

Fan-beam image geometry highlighting the constant distance between sensors in a line

ファンビーム センサーの間隔。正のスカラーで指定します。

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

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

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

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

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

データ型: double

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

"nearest" - 最近傍点

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

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

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

パラレルビームの回転範囲。"halfcycle" または "cycle" として指定します。

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

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

パラレルビーム センサーの間隔 (ピクセル単位)。正のスカラーとして指定します。

データ型: double

出力引数

すべて折りたたむ

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

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

データ型: double

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

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

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

データ型: double

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

データ型: double

バージョン履歴

R2006a より前に導入