フォーカス合成 (多焦点画像)

厚みのあるものを実体顕微鏡で観察したとき、対象物の全体を見るのにピント位置を変える必要があることがよくあります。そのような対象を普通に撮影すると、ごく一部にしかピントが合わず、かなり悲しいものになってしまいます。これは昔はどうしようもないことでしたが、今ではデジカメ写真を用いてのフォーカス合成(深度合成)が簡単にできるようになりました。もちろん通常の顕微鏡による切片の写真でも可能です。思い切り被写界深度を浅くして高解像度の光学切片画像として重ね合わせます。

フォーカス合成ソフトは撮影装置に付属してくることもありますし、市販ソフトもあります。フリーソフトもあります。なんとありがたいことか。私が使っているのはフリーのものですが、より正確に言うとパブリックドメインソフトです。その名も ImageJ。NIH Imageの後継と位置づけられているそうです。この"J"は日本とは関係なく、多分 Java の"J"です。Java で動くソフトですが、もうすんごいです。Java ってここまでできるようになったのかと驚きました。

詳しくはそのうち書きたいと思いますが、とりあえず検索キーワードになる程度の情報を。ImageJ 本体にスタック調整と深度合成のプラグインを追加して処理を行います。プラグインにもいろいろありますが、スタック調整には TurboReg と stackreg が、深度合成には Stack-focuser と Extended Depth of Field があります。

フォーカスブラケティング(ピントをちょっとずつずらして撮影すること)で撮影した一群の画像を全部 ImageJ 本体で読み込んで、スタックに変換します。スタックとは複数の画像を積み重ねるようにまとめたものです。これをスタック調整プラグインで加工して画像間の位置ずれなどを修正します。さらに深度合成を行って、ピントの合った部分だけを合成した写真にします。こんなことがデスクトップパソコンとフリーソフトだけでできるようになるとは、まさに感動ものです。そして、ImageJ でできることはこれだけにとどまらないそうです。連続切片から三次元モデルを構築するなんてことも可能です。

もう少しだけ具体的に書くと、Java と ImageJ 本体、それに各プラグイン(私は stackreg と Extended Depth of Field を使用)を入手しインストールします。本体は普通にインストーラーを実行するだけ。Vista や7の場合は ImageJ を"C:\Program files"や"C:\Program files (x86)"(x64版の場合)の下にインストールしてはいけません。UACのせいでプラグインがインストールできなくなります。え、UAC切る?まあ止めはしませんけどね、私と関係ないところでなら。プラグインは入手したアーカイブを展開し、出てきたフォルダーをImageJフォルダーのpluginsに入れるだけです。Extended Depth of Field は jarファイル(JAVA の実行ファイル)でした。これはただコピーするだけ。

合成操作は簡単です。ImageJ 本体を起動して、そのツールバーのようなウィンドウに画像ファイルをまとめてドラッグアンドドロップして開きます。デスクトップはウィンドウだらけ。次に本体の[Image]メニューから[Stacks]、[Images to stack]を実行します。これで単に重ねただけのスタックになるので、[Plugins]から[stackreg]を実行して位置ずれを調整を行います。そこそこ時間がかかります。終了したら[Plugins]から今度は[Extended Depth of Field]を実行します。

さすがにこれだけのことをするとそれなりのマシンパワーが必要です。Java だからなおさら、という面もあるかも知れません。これを書いたとき私の使っていた2003年製のマシン(といってもAthlon64 2GHzだから2008年でもまあ通用するスペックのはず)では、特に合成処理に時間がかかりました。といって別に一晩待つとかではありません。設定にもよりますが分単位で終了します。また、Java ならではの重要なポイントとして、プラットフォーム(ほぼ)非依存を実現しています。配布パッケージはプラットフォームごとに分かれていますが、Sun Microsystems が無償で配布している Java 仮想マシンソフトさえあれば、基本的に同じ ImageJ が動きます。

ヤマドリタケモドキ・クヌギ菌根参考までに作業のテストに用いた写真を。まだまだコツが分かっていなくて元画像のJPEG圧縮率を上げすぎたため使える品質ではありませんが、一応画面の奥と手前の両方にピントが合っている(と言うより同じくらいボケているかな、こりゃ)のが分かると思います。スタック(TIFFなので88MBの巨大ファイルです)にした元画像と比較すれば作業の概要がつかみやすいでしょう。