今回は、ImageJの拡張版Fijiのpluginを用いて、アフィン変換による画像位置合わせを実装してみます。
前回の記事で述べたように、アフィン変換によって、拡大縮小、回転、平行移動を組み合わせた画像位置合わせを行うことができます。アフィン変換による画像位置合わせには、画像強度を用いる方法と特徴点を用いる方法がありますが、今回は、特徴点を用いる方法で行います。
今回は、元画像を1.5倍に拡大、時計回りに30°回転、X,Y方向にそれぞれ30 pixels平行移動させた画像(図1参照)を作成し、この画像にアフィン変換を施して元画像に位置合わせすることにトライしてみます。
まず、Fijiのpluginを用いて画像の特徴点を選択してみましょう。
Fijiには、SIFTと呼ばれるアルゴリズムを用いて画像の特徴点を抽出するpluginが搭載されています。
まず、位置合わせを行う2つの画像を開いてから、Plugins > Feature Extraction > Extract SIFT Correspondencesを選択します(図1)。
source画像とtarget画像を選択し、パラメータはデフォルトの値を用います。今回は、一番下のexpected transformation(予想される変形)にAffine(アフィン変換)を選択します(図2)。
[OK]をクリックすると・・
2つの画像それぞれにおいて、対応する特徴点(69個)が抽出されました(図3)。
では次に、この特徴点の抽出を行うpluginを拡張した位置合わせpluginを用いて、アフィン変換による位置合わせを行いましょう。
まず、Plugins > Registration > Linear Stack Alignment with SIFT を選択します(図4)。
但し、このpluginを開く前に、位置合わせを行う2つの画像をstackする(重ねて一つの画像セットにする)必要があります。2つの画像を開いた状態で、Stacks > Images to Stackを選択すると、Stackされます。
図5(左)は、2つの画像をStackした状態で、透かしてみると図5(右)のようになり、重なっている様子が分かります。
位置合わせを行うパラメータは下の通りです。パラメータの種類とその値は、図2の特徴点抽出pluginとほとんど同じです。
[OK]をクリックすると・・
図7のように、スタックされた2つの画像上で対応する特徴点が抽出されると同時に、図8のように画像の位置合わせが行われました。拡大+回転+平行移動させた画像が、元画像に位置合わせされているのが確認できます。
今回は、2つの画像から対応する特徴点を抽出するpluginと、抽出された対応する特徴点を用いてAffine変換による位置合わせを行うpluginを紹介しました。このpluginで用いられている特徴点抽出のアルゴリズム(SIFT)についての詳細はこちらを参照してください。
次回は、非線形な変換を用いた位置合わせ(Deformable Image Registration)について紹介しようと思います。
*今回用いた脳MRI画像は、McConnell Brain Imaging Centerが公開しているBrain Webという脳MRIのデータベースからダウンロードしました。(http://brainweb.bic.mni.mcgill.ca)