Main Content

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

ラドン変換

メモ

ファンビーム投影と呼ばれる単一ソースから出る放射状のパスに沿った線積分からの投影データを作成する方法の詳細については、ファンビーム投影を参照してください。パラレル ビーム投影データをファンビーム投影データに変換するには、関数 para2fan を使用します。

関数 radon は特定の方向にイメージ行列の "投影" を計算します。

2 次元関数 "f(x,y)" の投影は、線積分の集合です。関数 radon はある方向に平行なパスに沿って、すなわち "ビーム" に沿って、複数のソースから線積分を計算します。ビームは 1 ピクセルの間隔で分布しています。イメージを表すために、関数 radon はイメージの中心の周りにソースを回転させることで、さまざまな角度からイメージの複数のパラレル ビーム投影を行います。次の図は、指定した回転角での単一投影を示しています。

回転角 Theta でのパラレル ビーム投影

Single projection of parallel beams at a rotation angle of theta about the center of the coordinate system.

たとえば、f(x,y) の垂直方向での線積分は f(x,y)x 軸上への投影です。そして、水平方向での線積分は y 軸上への f(x,y) の投影です。次の図は、簡単な 2 次元関数に関する水平方向と垂直方向の投影です。

単純な関数の水平方向と垂直方向の投影

For a 2-D rectangular object aligned with the x and y axes, the horizontal and vertical projections are 1-D box functions with the same vertical and horizontal spatial extents as the rectangle, respectively.

投影は、任意の角度 "theta" (θ) に沿っても計算できます。一般に、"f(x,y)" のラドン変換は "y" 軸に平行な "f" の線積分です。

Rθ(x)=f(xcosθysinθ,xsinθ+ycosθ)dy

ここで

[xy]=[ cosθsinθsinθcosθ][xy]

次の図は、ラドン変換を幾何学的に示しています。

ラドン変換の幾何形状

The Radon transform of a square at an arbitrary projection angle is an isosceles trapezoid whose axis of symmetry is the y'-axis.

イメージのラドン変換のプロット

この例では、特定の回転角度のセットについて、イメージのラドン変換を関数 radon を使用して計算する方法を説明します。

1 つの正方形オブジェクトから成る小さいサンプル イメージを作成し、そのイメージを表示します。

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

Figure contains an axes object. The axes object contains an object of type image.

角度 0° と 30° に対するイメージのラドン変換を計算します。この関数は R を返します。その列には theta 内の各角度に対するラドン変換が含まれています。また、関数はベクトル xp も返します。このベクトルには x 軸に沿って対応する座標が含まれています。I の中央ピクセルは floor((size(I)+1)/2) となるように定義されています。これは、x' = 0 に対応する x 軸上のピクセルです。

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

変換を 0° でプロットします。

figure
plot(xp,R(:,1))
title("Radon Transform of Square Function at 0 Degrees")

Figure contains an axes object. The axes object with title Radon Transform of Square Function at 0 Degrees contains an object of type line.

変換を 30° でプロットします。

plot(xp,R(:,2));
title("Radon Transform of Square Function at 30 Degrees")

Figure contains an axes object. The axes object with title Radon Transform of Square Function at 30 Degrees contains an object of type line.

ラドン変換は、通常、多数の角度に対して計算され、1 つのイメージとして表示されます。正方形イメージに対するラドン変換を 0° から 180° まで 1 度刻みで計算します。

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

2 次元ラドン変換をシノグラムとして表示します。

figure
imagesc(theta,xp,R)
title("R_{\theta} (X\prime)")
xlabel("\theta (degrees)")
ylabel("X\prime")
set(gca,"XTick",0:20:180)
colormap(hot)
colorbar

Figure contains an axes object. The axes object with title R indexOf theta baseline blank (X prime ), xlabel theta blank (degrees), ylabel X prime contains an object of type image.