手習ひデジタル信号処理(150) Scilab、{IPCV}、ラドン変換って何よ?

Joseph Halfmoon

好んで入りたいとは思わないのです。しかし歳をとるとCT(Computed Tomography)の機械に入れられること時折。中は見えないですがドーナツの中で高速回転しとるよ感の音。そして自分の腹の断面図、それもスライス状に多数が提示されるのであります。このときラドン変換の計算(近似か?)がなされている?ホントか?

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上の    Scilab2024.0.0およびScilab上のScilab IPCVツールボックスを使用させていただいております。

ラドン変換

トモグラフィ技術は、医療だけでなく、地球物理や土木工学など切らずに(掘らずに)中身を見たいときに多用されとる技術だと思います。数学者のラドン先生が定理を発見されたのね。ちなみに綴りはRadonっす。放射性物質のRadonと同じみたいだけれども「たまたま」?

さてこのラドン変換について、素人老人が語ってもせんないので、『武蔵野大学』様の以下のページへのリンクを貼り付けておきます。

数理工学センターコラム 「物を壊すことなく内部を「見る」には?」

今回手習ひしてみる関数は、画像(腹の中の様子?など)をラドン変換して、周囲を回転する線上に投影した様子を計算してくれるみたい。

計算例

例によってHelpファイルに掲載している例をちょいと手直しした例が以下に。

I = zeros(100,100);
I(25:75, 25:75) = 1;
[RT,xp] = imradon(I);
scf();
subplot(141); title('Original'); imshow(I);
subplot(142); title('Radon Transforms'); imshow(RT,hotcolormap(64));
subplot(143); title('0 Degrees'); plot(xp, RT(:,1));
subplot(144); title('45 Degrees'); plot(xp, RT(:,46));

ラドン変換の関数 imradon()は第2引数として角度(ベクトル)をとるのですが、何も書かないと0:179(0度から179度)を想定して1度キザミで計算してくれるみたいです。ここではデフォのまま。

上記の結果が以下に。RadonSamplePlot

 

左端が元画像です。そしてラドン変換後の行列が左から2つめに。そして、0度のときの投影データ波形と、45度のときの投影データ波形がそれにつづいております。

逆変換が簡単にできると良かったのだが。

手習ひデジタル信号処理(149) Scilab、{IPCV}、LogPolar対数極座標変換 へ戻る

手習ひデジタル信号処理(151) Scilab、{IPCV}、流域変換って何よ? へ進む