ラドン変換
メモ:
ファンビーム投影と呼ばれる単一ソースから出る放射状のパスに沿った線積分からの投影データを作成する方法の詳細については、ファンビーム投影を参照してください。パラレル ビーム投影データをファンビーム投影データに変換するには、関数para2fan
を使用します。
関数radon
は特定の方向にイメージ行列の"投影"を計算します。
2 次元関数"f(x,y)"の投影は、線積分の集合です。関数radon
はある方向に平行なパスに沿って、すなわち"ビーム"に沿って、複数のソースから線積分を計算します。ビームは 1 ピクセルの間隔で分布しています。イメージを表すために、関数radon
はイメージの中心の周りにソースを回転させることで、さまざまな角度からイメージの複数のパラレル ビーム投影を行います。次の図は、指定した回転角での単一投影を示しています。
回転角 Theta でのパラレル ビーム投影
たとえば、f(x,y)の垂直方向での線積分はf(x,y)のx軸上への投影です。そして、水平方向での線積分はy軸上へのf(x,y)の投影です。次の図は、簡単な 2 次元関数に関する水平方向と垂直方向の投影です。
単純な関数の水平方向と垂直方向の投影
投影は、任意の角度"theta"(θ) に沿っても計算できます。一般に、"f(x,y)"のラドン変換は"y"軸に平行な"f"の線積分です。
ここで、
次の図は、ラドン変換を幾何学的に示しています。
ラドン変換の幾何形状
イメージのラドン変換のプロット
この例では、特定の角度のセットtheta
に対するイメージI
のラドン変換を関数radon
で計算する方法を説明します。この関数はR
を返します。その列にはtheta
内の各角度に対するラドン変換が含まれています。また、関数はベクトルxp
も返します。このベクトルには x 軸に沿って対応する座標が含まれています。I
の中央ピクセルはfloor((size(I)+1)/2)
となるように定義されています。これは、x' = 0に対応する x 軸上のピクセルです。
この例で使用する、1 つの正方形オブジェクトから成る小さいサンプル イメージを作成し、それを表示します。
我= 0 (100100);我(25:75 25:75)= 1;我mshow(I)
角度 0 度と 45 度に対するイメージのラドン変換を計算します。
[R,xp] = radon(I,[0 45]);
0 度の変換をプロットします。
figure plot(xp,R(:,1)); title('Radon Transform of a Square Function at 0 degrees')
45 度の変換をプロットします。
figure plot(xp,R(:,2)); title('Radon Transform of a Square Function at 45 degrees')
ラドン変換をイメージとして見る
多くの角度に対するラドン変換をイメージとして表示します。この例で、正方形イメージに対するラドン変換が、0 度から 180 度まで 1 度刻みで計算されます。
theta = 0:180; [R,xp] = radon(I,theta); imagesc(theta,xp,R); title('R_{\theta} (X\prime)'); xlabel('\theta (degrees)'); ylabel('X\prime'); set(gca,'XTick',0:20:180); colormap(hot); colorbar
180 度の投影を使用するラドン変換