ifanbeam
逆ファンビーム変換
説明
例
ファンビーム変換からのイメージの再作成
サンプル イメージを作成します。関数 phantom
はファントム頭部イメージを作成します。
ph = phantom(128);
ファントム頭部イメージのファンビーム変換を作成します。
d = 100; F = fanbeam(ph,d);
ファンビーム表現からファントム頭部イメージを再構成します。元のイメージと再構成したイメージを表示します。
I = ifanbeam(F,d); imshow(ph)
figure imshow(I);
Fancoverage を minimal に設定したファンビームの生成
サンプル イメージを作成します。関数 phantom はファントム頭部イメージを作成します。
ph = phantom(128);
イメージのラドン変換を作成します。
P = radon(ph);
変換をパラレル ビーム投影からファンビーム投影に変換します。
[F,obeta,otheta] = para2fan(P,100,... 'FanSensorSpacing',0.5,... 'FanCoverage','minimal',... 'FanRotationIncrement',1);
ファンビーム データからイメージを再構成します。
phReconstructed = ifanbeam(F,100,... 'FanSensorSpacing',0.5,... 'Filter','Shepp-Logan',... 'OutputSize',128,... 'FanCoverage','minimal',... 'FanRotationIncrement',1);
元のイメージと変換後のイメージを表示します。
imshow(ph)
figure imshow(phReconstructed)
入力引数
F
— ファンビーム投影データ
numSensors 行 numAngles 列の数値行列
ファンビーム投影データ。numSensors 行 numAngles 列の数値行列として指定します。numSensors はファンビーム センサーの数で、numAngles はファンビーム回転角の数です。F
の各列には 1 つの回転角のファンビーム センサーのサンプルが格納されます。
データ型: double
| single
D
— ファンビーム頂点から回転中心までの距離
正の数値
ファンビーム頂点から回転中心までの距離 (ピクセル単位)。正の数値として指定します。ifanbeam
は、回転の中心が投影の中心点であると仮定し、ceil(size(F,1)/2)
として定義します。
データ型: double
| single
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: I = ifanbeam(F,D,FanRotationIncrement=5)
は 5 度のファン回転角増分を指定します。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: I = ifanbeam(F,D,"FanRotationIncrement",5)
は 5 度のファン回転角増分を指定します。
FanCoverage
— ファンビームの回転範囲
"cycle"
(既定値) | "minimal"
ファンビームの回転範囲。"cycle"
または "minimal"
として指定します。
"cycle"
— 全範囲 [0, 360) 度にわたり回転します。"minimal"
— オブジェクトを表すために必要な最小範囲を回転します。
FanRotationIncrement
— ファンビーム回転角の増分
1
(既定値) | 正のスカラー
ファンビーム回転角の増分 (度単位)。正のスカラーとして指定します。
データ型: double
FanSensorGeometry
— ファンビーム センサーの配置
"arc"
(既定値) | "line"
ファンビーム センサーの配置。"arc"
または "line"
として指定します。
値 | 平均 | 図 |
---|---|---|
| センサーは、円弧状に等角度で配置されます。弧の中心はファンビーム頂点です。
|
|
| センサーは、x' 軸に平行なラインに沿って等間隔に配置されます。最も近いセンサーは回転中心から距離
|
|
FanSensorSpacing
— ファンビーム センサーの間隔
1
(既定値) | 正のスカラー
ファンビーム センサーの間隔。正のスカラーとして指定します。
FanSensorGeometry
が"arc"
の場合、FanSensorSpacing
は角度の間隔を度単位で定義します。FanSensorGeometry
が"line"
の場合、FanSensorSpacing
はファンビーム間の線形距離をピクセル単位で定義します。線形間隔は、x' 軸上で測定されます。
データ型: double
Filter
— フィルター
"Ram-Lak"
(既定値) | "Shepp-Logan"
| "Cosine"
| "Hamming"
| "Hann"
| "None"
周波数領域でのフィルター処理で使用するフィルター。次の表のいずれかの値として指定します。詳細については、iradon
を参照してください。
値 | 説明 |
---|---|
| Cropped Ram-Lak またはランプ フィルター。このフィルターの周波数応答は | |
| 関数 |
| 関数 |
| ハミング ウィンドウと Ram-Lak フィルターを乗算します。 |
| ハン ウィンドウと Ram-Lak フィルターを乗算します。 |
"None" | フィルター処理を行いません。ifanbeam はフィルター処理されていないデータを返します。 |
データ型: char
| string
FrequencyScaling
— 倍率
1
(既定値) | 範囲 (0, 1] の正の数値
周波数軸を再スケーリングするスケール係数。(0, 1] の範囲の正の数値を指定します。FrequencyScaling
が 1 未満である場合、フィルターは、正規化周波数の周波数範囲 [0, FrequencyScaling
] に適合するように圧縮されます。FrequencyScaling
を超える周波数については、すべて 0
に設定されます。詳細については、iradon
を参照してください。
データ型: double
Interpolation
— 内挿タイプ
"Linear"
(既定値) | "nearest"
| "spline"
| "pchip"
パラレルビーム データとファンビーム データの間で使用される内挿のタイプ。次のいずれかの値として指定します。
"nearest"
- 最近傍点
"linear"
— 線形 (既定の設定)
"spline"
— 区分的 3 次スプライン
"pchip"
— 区分的 3 次エルミート (PCHIP)
データ型: char
| string
OutputSize
— 再構成イメージのサイズ
正の整数
再構成イメージのサイズ。正の整数として指定します。イメージには同じ数の行と列が含まれます。
OutputSize
を指定した場合、ifanbeam
は、イメージを大きくするか、または、小さくしますが、データのスケーリングには変化がありません。
メモ
関数 fanbeam
を使用して投影を計算した場合、再構成イメージのサイズは元のイメージと異なる場合があります。
OutputSize
を指定しない場合、サイズは以下によって自動的に計算されます。
OutputSize = 2*floor(size(R
,1)/(2*sqrt(2)))
ここで、R
は iradon
によって使用されるパラレルビーム投影データの長さです。詳細については、アルゴリズムを参照してください。
データ型: double
出力引数
I
— 再構成イメージ
2 次元数値行列
再構成イメージ。2 次元数値行列として指定します。
H
— 周波数応答
数値ベクトル
フィルターの周波数応答。数値ベクトルとして返されます。
データ型: double
ヒント
アルゴリズム
ifanbeam
はファンビーム データをパラレル ビーム投影に変換し、フィルター補正逆投影アルゴリズムを使用して逆ラドン変換を行います。フィルターは周波数領域で直接設計され、投影の FFT が乗算されます。投影は、空間領域でのエイリアシングを避けて FFT の速度を上げるために、フィルター処理を行う前に 2 のべき乗になるようにゼロ パディングされます。
参照
[1] Kak, Avinash C., and Malcolm Slaney. Principles of Computerized Tomographic Imaging. New York: IEEE Press, 1988.
バージョン履歴
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)