Main Content

radon

説明

R = radon(I) は角度範囲 [0, 179] に対する 2 次元グレースケール イメージ I のラドン変換 R を返します。ラドン変換は、指定した角度の方向へ放射状に伸びた線に沿ってイメージ強度の投影を行うものです。

R = radon(I,theta) は、theta で指定された角度に対するラドン変換を返します。

[R,xp] = radon(___) は、イメージの各行に対応する半径方向座標を含んでいるベクトル xp を返します。

すべて折りたたむ

以下のイメージについて座標軸のスケールを表示します。

iptsetpref('ImshowAxesVisible','on')

サンプル イメージを作成します。

I = zeros(100,100);
I(25:75, 25:75) = 1;

ラドン変換を計算します。

theta = 0:180;
[R,xp] = radon(I,theta);

変換を表示します。

imshow(R,[],'Xdata',theta,'Ydata',xp,'InitialMagnification','fit')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(gca,hot), colorbar

座標軸のスケールを非表示にします。

iptsetpref('ImshowAxesVisible','off')

入力引数

すべて折りたたむ

グレースケール イメージ。2 次元数値行列として指定します。

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

投影角 (度単位)。数値スカラーまたは数値ベクトルとして指定します。

データ型: double

出力引数

すべて折りたたむ

イメージ I のラドン変換。次のいずれかとして返されます。

  • theta がスカラーの場合、Rtheta 度に対するラドン変換を含んでいる数値列ベクトルになります。

  • theta がベクトルの場合、R は各列が theta の 1 つの角度に対してラドン変換された行列となります。

R の各行に対応する半径方向座標。数値ベクトルとして返されます。半径方向座標は、x' 軸に沿った値で、x 軸から反時計回りに theta 度の方向になります。両軸の原点はイメージの中心ピクセルで、次のように定義されます。

floor((size(I)+1)/2)
たとえば、20 × 30 のイメージでは、中心ピクセルは (10, 15) になります。

アルゴリズム

ラドン変換したイメージは、個々のピクセルをそれぞれラドン変換したものの和です。

アルゴリズムは、まずイメージ内のピクセルを 4 つのサブピクセルに分割し、次の図のように各サブピクセルを別々に投影します。

The center of four subpixels are projected into evenly spaced bins.

投影位置からビン中心までの距離に応じて、各サブピクセルは 2 つの最も近いビンに均等に分割されます。サブピクセルがビンの中心点に投影されると、座標軸上のビンはサブピクセルの絶対値またはピクセルの 4 分の 1 の値を取得します。サブピクセルが 2 つのビンの境界に投影されると、サブピクセルの値はビンに均等に分割されます。

参照

[1] Bracewell, Ronald N., Two-Dimensional Imaging, Englewood Cliffs, NJ, Prentice Hall, 1995, pp. 505-537.

[2] Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, pp. 42-45.

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する