今回は、ImageJという画像解析ソフトを使って、画像位置合わせにトライしてみようと思います。
従来のImageJには、画像位置合わせの機能が搭載されていませんでした。
ところが、ImageJは、Pluginとして自作した機能を追加することができるのです。今回は、弊社が開発・公開しているPluginの中で、画像位置合わせのPluginを使います。
ImageJへのPluginのインストールについては、下記のリンクを参照してください。
今回は、脳MRI画像を縦、横にそれぞれ30(pixels)平行移動させた画像を元画像に位置合わせする、という操作を行ってみます。
図1は、Plugin(LPX registration)をインストールした状態です。左の画像は、(上)元画像と(下)移動画像です。右下方向に平行移動しているのがわかると思います。この2つの画像を位置合わせしようと思います。
① まず、元画像と移動画像をStackさせます。つまり、2枚の画像を積み重ねて1つのセットにして、図2左上(Stack)のようにします。わかりやすくするため、Stack画像を透かしてみると、図2の左下(SUM_Stack)のようになり、ずれているのが分かります。
②そして、図2右のparmsに示すようにパラメータを設定します。
modeは、[serialShiftXy]を選択します。
ssxyModeは、[getShiftMap]を選択します。これは、XY方向へのズレの度合(画像類似度)を表す画像を取得するモードです。
calcMethodは、計算領域を縮小し、時間を短縮できる[pso]を選択します。
tileAsは、[stack]を選択します。
similarityは、2つの画像の類似度の評価関数を意味し、16種類から選択できますが、今回はzncc(正規化相互相関)を用います。
via zncc
[OK]をクリックすると、図3のような分布が現れます。これは、移動画像を移動させた時の元画像と移動画像の相互相関値と移動量の関係を表したものです(原点は画像中央の十字マーク)。
その証拠に、図3画像中央から左方向と上方向にそれぞれ30 pixels移動した点が、相互相関値が1.0(最大の類似度)となっています。
では、この画像類似度の分布を用いて、画像位置合わせを行うモードに移りましょう。パラメータは図4のようになります。図2と変わったところは、
ssModeは、[useShiftMap]を選択します。これは、画像類似度分布を用いて位置合わせを行うモードです。
Shiftmapは、画像類似度分布(今回は、[Stack_ssxyGetMapPso@zncc@1])を選択します。
そして、[OK]をクリックすると・・・
図5の右下のように、元画像(赤枠)と移動画像(黄枠)の位置合わせが行われたのがわかると思います。
位置合わせによって、移動画像(黄枠)が左斜め方向に30×30 (pixels)平行移動されました。
(ちなみに色枠はわかりやすくするためにつけました。)
このように、この位置合わせPluginを用いることによって、平行移動した画像の位置合わせが行えます。放射線治療や放射線診断の臨床現場では、この画像位置合わせを3次元的に行っています(回転も含む)。
次回は、回転も組み込んだ画像位置合わせを見ていくことにしましょう。
*今回用いた脳MRI画像は、McConnell Brain Imaging Centerが公開しているBrain Webという脳MRIのデータベースからダウンロードしました。(http://brainweb.bic.mni.mcgill.ca)