Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

iradon

説明

I = iradon(R,theta) は、投影角度 theta で取得した R 内の投影データからイメージ I を再構成します。

I = iradon(R,theta,interp,filter,frequencyScaling,outputSize) は、逆ラドン変換で使うためのパラメーターを指定します。後半の 4 つの引数については、任意の組み合わせが可能です。iradon は、引数を省略した場合、既定値を使用します。

[I,H] = iradon(___) はフィルターの周波数応答 H も返します。

すべて折りたたむ

ファントムのイメージを作成します。イメージを表示します。

P = phantom(128); 
imshow(P)
title('Original image')

Figure contains an axes object. The axes object with title Original image contains an object of type image.

イメージのラドン変換を実行します。

R = radon(P,0:179);

フィルター補正ありの逆投影法を実行します。

I1 = iradon(R,0:179);

フィルター補正なしの逆投影法を実行します。

I2 = iradon(R,0:179,'linear','none');

再構成後のイメージを表示します。

figure
subplot(1,2,1)
imshow(I1,[])
title('Filtered Backprojection')
subplot(1,2,2)
imshow(I2,[])
title('Unfiltered Backprojection')

Figure contains 2 axes objects. Axes object 1 with title Filtered Backprojection contains an object of type image. Axes object 2 with title Unfiltered Backprojection contains an object of type image.

ファントムのイメージを作成します。

P = phantom(128);

イメージのラドン変換を実行し、45 度の投影に対応する投影ベクトルを求めます。

R = radon(P,0:179);
r45 = R(:,46);

この単一の投影ベクトルに対する逆ラドン変換を実行します。iradon の構文は、theta がスカラーの場合、インクリメントとして扱われるため、これを直接計算することができません。投影ベクトルをコピーし、その結果を 2 で割ることで、タスクを実行できます。

I = iradon([r45 r45], [45 45])/2;

結果を表示します。

imshow(I, [])
title('Backprojection from 45 degrees')

Figure contains an axes object. The axes object with title Backprojection from 45 degrees contains an object of type image.

入力引数

すべて折りたたむ

パラレル ビーム投影データ。次のいずれかに指定します。

  • theta がスカラーの場合、Rtheta 度に対するラドン変換を含んでいる列ベクトルとして指定します。

  • theta がベクトルの場合、R を各列が theta の 1 つの角度に対するラドン変換である 2 次元行列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

投影角 (度単位)。以下のいずれかを指定します。

説明
数値ベクトル投影角。角度の間隔が等しくなければなりません。
数値スカラー投影時の角度の増分。角度 m*theta (m = 0,1,2,...,size(R,2)-1) により投影されます。
[]投影時の角度の増分を自動的に 180/size(R,2) に設定します。

データ型: single | double

逆投影法で使用する内挿のタイプ。次のいずれかの値を指定します。この値は、精度と計算の複雑度が増える順でリストされています。

説明

"nearest"

最近傍内挿

"linear"

線形内挿

"spline"

スプライン内挿

"pchip"形状維持区分的 3 次内挿
"v5cubic"MATLAB® 5 で使用される 3 次畳み込み

データ型: char | string

周波数領域でのフィルター処理で使用するフィルター。次のいずれかの値を指定します。

説明

"Ram-Lak"

Cropped Ram-Lak またはランプ フィルター。このフィルターの周波数応答は | f | です。このフィルターは、投影においてノイズに敏感なので、以下に示すフィルターの中から 1 つを使用することを推奨します。これらのフィルターは、Ram-Lak フィルターに高周波数を抑えるウィンドウを乗算しています。

"Shepp-Logan"

関数 sinc と Ram-Lak フィルターを乗算します。

"Cosine"

関数 cosine と Ram-Lak フィルターを乗算します。

"Hamming"

ハミング ウィンドウと Ram-Lak フィルターを乗算します。

"Hann"

ハン ウィンドウと Ram-Lak フィルターを乗算します。

"None"フィルター処理を行いません。iradon はフィルター補正なしの逆投影法データを返します。

データ型: char | string

周波数軸を再スケーリングするスケール係数。(0, 1] の範囲の正の数値を指定します。frequencyScaling が 1 未満である場合、フィルターは、正規化周波数の周波数範囲 [0,frequencyScaling] に適合するように圧縮されます。frequencyScaling を超える周波数については、すべて 0 に設定されます。

再構成イメージの行数と列数。正の整数を指定します。outputSize が指定されていない場合、iradon は投影の長さから以下に従ってサイズを決定します。

outputSize = 2*floor(size(R,1)/(2*sqrt(2)))

outputSize を指定した場合、iradon は、イメージを大きくするか、または、小さくしますが、データのスケーリングには変化がありません。関数 radon を使用して投影を計算した場合、再構成イメージのサイズは元のイメージと異なる場合があります。

出力引数

すべて折りたたむ

グレースケール イメージ。数値行列として返されます。投影データ R のデータ型が single の場合、I のデータ型は single です。それ以外の場合、I のデータ型は double です。

データ型: single | double

フィルターの周波数応答。数値ベクトルとして返されます。投影データ R または投影角 theta のデータ型が single の場合、H のデータ型は single です。それ以外の場合、H のデータ型は double です。

データ型: single | double

アルゴリズム

iradon は、回転の中心が投影の中心点 ceil(size(R,1)/2) であると仮定しています。

iradon は、フィルター補正逆投影法アルゴリズムを使って、逆ラドン変換を実行します。フィルターは周波数領域で直接設計され、投影の FFT が乗算されます。投影は、空間領域でのエイリアシングを避けて FFT の速度を上げるために、フィルター処理を行う前に 2 のべき乗になるようにゼロ パディングされます。

参照

[1] Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する