ドキュメンテーション

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

fan2para

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

説明

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

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

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

すべて折りたたむ

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

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

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

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

入力引数

すべて折りたたむ

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

データ型: double | single

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

データ型: double | single

名前と値のペアの引数

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

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

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

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

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

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

データ型: double

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

意味

'arc'

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

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

'line'

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

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

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

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

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

データ型: double

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

'nearest' - 最近傍点

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

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

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

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

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

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

パラレルビーム回転角の増分 (度単位)。'ParallelRotationIncrement' と、180/k が整数になる正のスカラー k で構成されるコンマ区切りのペアとして指定します。ParallelRotationIncrement を指定しない場合、既定値は FanRotationIncrement に等しくなります。

データ型: double

パラレルビーム センサーの間隔 (ピクセル単位)。'ParallelSensorSpacing' と正のスカラーで構成されるコンマ区切りのペアとして指定します。パラレルビーム センサーの位置の範囲は、ファン角度の範囲 fanangles から [D*sin(min(fanangles)) D*sin(max(fanangles))] に従って計算されます。

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

データ型: double

出力引数

すべて折りたたむ

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

データ型: double

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

データ型: double

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

データ型: double

R2006a より前に導入