Main Content

fan2para

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

説明

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

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

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

すべて折りたたむ

合成パラレル ビーム データを作成します。

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(gca,hot), colorbar

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

パラレル ビーム データをファン ビーム データに変換します。

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(gca,hot), colorbar

Figure contains an axes object. The axes object with title Recovered Parallel-Beam Data, xlabel Rotation Angles (degrees), ylabel Parallel Sensor Locations (pixels) contains an object of type image.

入力引数

すべて折りたたむ

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

データ型: double | single

ファン ビーム頂点から回転中心までの距離 (ピクセル単位)。正の数値として指定します。fan2para は、回転の中心が投影の中心点であると仮定し、ceil(size(F,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 は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

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

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

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

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

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

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

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

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' 軸上で測定されます。

データ型: double

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

"nearest" - 最近傍点

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

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

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

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

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

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

パラレルビーム回転角の増分 (度単位)。180/k が整数になる正のスカラー k として指定します。ParallelRotationIncrement を指定しない場合、既定値は FanRotationIncrement に等しくなります。

データ型: double

パラレルビーム センサーの間隔 (ピクセル単位)。正のスカラーとして指定します。パラレルビーム センサーの位置の範囲は、ファン角度の範囲 fanAngles から [D*sin(min(fanAngles)) D*sin(max(fanAngles))] に従って計算されます。

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

データ型: double

出力引数

すべて折りたたむ

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

データ型: double

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

データ型: double

パラレルビーム回転角。数値行ベクトルとして返されます。

データ型: double

バージョン履歴

R2006a より前に導入