このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
fanbeam
ファンビーム変換
説明
は名前と値の引数を使用して、回転の増分とセンサーの間隔を指定します。F
= fanbeam(I
,D
,Name,Value
)
[
はファンビーム センサーの位置を F
,fanSensorPos
,fanRotAngles
] = fanbeam(___)fanSensorPos
で、ファンビーム投影を計算する回転角を fanRotAngles
で返します。
例
イメージ全体に対する回転角でのファンビーム投影の計算
座標軸を表示するように IPT 基本設定を指定します。
iptsetpref('ImshowAxesVisible','on')
サンプル イメージを作成して表示します。
ph = phantom(128); imshow(ph)
ファンビーム投影を計算して表示します。
[F,Fpos,Fangles] = fanbeam(ph,250); figure imshow(F,[],'XData',Fangles,'YData',Fpos,... 'InitialMagnification','fit') axis normal xlabel('Rotation Angles (degrees)') ylabel('Sensor Positions (degrees)') colormap(gca,hot), colorbar
ラドン投影とファンビーム投影の計算と結果の比較
'arc' の幾何配置に対するファンビーム投影を計算します。
I = ones(100); D = 200; dtheta = 45; [Farc,FposArcDeg,Fangles] = fanbeam(I,D,... 'FanSensorGeometry','arc',... 'FanRotationIncrement',dtheta);
角度位置を x´ 軸方向の線形距離に変換します。
FposArc = D*tan(FposArcDeg*pi/180);
'line' の幾何配置に対するファンビーム投影を計算します。
[Fline,FposLine] = fanbeam(I,D,... 'FanSensorGeometry','line',... 'FanRotationIncrement',dtheta);
対応するラドン変換を計算します。
[R,Rpos]=radon(I,Fangles);
特定の回転角で 3 つの投影を表示します。この 3 つは非常によく似ています。異なっているのは、サンプリングの幾何配置と計算に使用された数値近似があるからです。
figure idx = find(Fangles==45); plot(Rpos,R(:,idx),... FposArc,Farc(:,idx),... FposLine,Fline(:,idx)) legend('Radon','Arc','Line')
入力引数
I
— 入力イメージ
2 次元数値行列 | 2 次元 logical 行列
入力イメージ。2 次元数値行列または 2 次元 logical 行列として指定します。
D
— ファン ビーム頂点から回転中心までの距離
正の数値
ファン ビーム頂点から回転中心までの距離 (ピクセル単位)。正の数値として指定します。回転の中心はイメージの中心ピクセルであり、floor((size(I)+1)/2)
として定義されます。D
は、どの回転角でもファンビームの頂点がイメージの外側になる十分な大きさでなければなりません。D
の指定に関するガイドラインについては、ヒントを参照してください。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: fanbeam(I,D,FanRotationIncrement=5)
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: fanbeam(I,D,"FanRotationIncrement",5)
FanRotationIncrement
— ファンビーム回転角の増分
1
(既定値) | 正のスカラー
ファンビーム回転角の増分 (度単位)。正のスカラーとして指定します。
データ型: double
FanSensorGeometry
— ファンビーム センサーの配置
"arc"
(既定値) | "line"
ファンビーム センサーの配置。"arc"
または "line"
として指定します。
値 | 意味 | 図 |
---|---|---|
| センサーは、円弧状に等角度で配置されます。弧の中心はファンビーム頂点です。
|
|
| センサーは、x' 軸に平行なラインに沿って等間隔に配置されます。最も近いセンサーは回転中心から距離
|
|
FanSensorSpacing
— ファンビーム センサーの間隔
1
(既定値) | 正のスカラー
ファンビーム センサーの間隔。正のスカラーとして指定します。
FanSensorGeometry
が"arc"
の場合、FanSensorSpacing
は角度の間隔を度単位で定義します。FanSensorGeometry
が"line"
の場合、FanSensorSpacing
はファンビーム間の線形距離をピクセル単位で定義します。線形間隔は、x' 軸上で測定されます。
データ型: double
出力引数
F
— ファンビーム投影データ
numSensors 行 numAngles 列の数値行列
ファンビーム投影データ。numSensors 行 numAngles 列の数値行列として返されます。numSensors はファンビーム センサーの数で、numAngles はファンビーム回転角の数です。F
の各列には 1 つの回転角のファンビーム センサーのサンプルが格納されます。
fanbeam
は、角度の間隔 FanRotationIncrement
を使用して、360 度の範囲とするために必要な回転角を計算して numAngles を決定します。
fanbeam
は、任意の回転角についてイメージ全体をカバーするために必要なビームの数を計算して、numSensors を決定します。ファンビーム頂点と回転中心の間の距離 D
が大きい場合、イメージをカバーするために必要なビームの数が少なくなります。
データ型: double
fanSensorPos
— ファンビーム センサーの位置
numSensors 行 1 列の数値ベクトル
ファンビーム センサーの位置。numSensors 行 1 列の数値ベクトルとして返されます。
FanSensorGeometry
が"arc"
(既定の設定) の場合、fanSensorPos
にはファンビーム広がり角が格納されます。FanSensorGeometry
が"line"
の場合、fanSensorPos
には "x'" 軸に沿ったファンビーム センサーの位置が格納されます。詳細については、FanSensorSpacing
を参照してください。
データ型: double
fanRotAngles
— ファンビーム センサーの回転角
1 行 numAngles 列の数値ベクトル
ファンビーム センサーの回転角。1 行 numAngles 列の数値ベクトルとして返されます。
データ型: double
ヒント
ガイドラインとして、D
を以下のように計算されるイメージの対角線寸法の 1/2 より数ピクセルだけ大きくしてください。
sqrt(size(I,1)^2 + size(I,2)^2)
F
で返される値はファンビーム投影の数値的近似です。アルゴリズムはラドン変換に依存し、これはファンビーム形状に内挿されます。結果は使用されるパラメーターに応じて異なります。イメージが大きい場合、D
が大きい場合、および点がエッジから離れてイメージの中心に近い場合には、結果の精度が高くなります。
参照
[1] Kak, Avinash C., and Malcolm Slaney. Principles of Computerized Tomographic Imaging. New York: IEEE Press, 1988.. pp. 92-93.
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)