- SPring-8などでは,浜松ホトニクス社製CCDやCMOSカメラがよく用いられる.専用のHiPicというソフトウエアがあればこれを開いたり,様々な処理ができる(とても便利).しかし,マクロが組めない点や複雑な処理ができない点で大量のデータを扱うにはいまいちである.拡張子が".img"であるファイルをImageJで開くことができるpuluginを作成したので添付する.なお,本コードは"OpenSPE"というpluginを修正して作成したものである.
- OpenIMG_.java
- OpenIMG_.class
- [2018/11/06] 異なるバイトに対応.Fixed headerに対応.旧スクリプトはこちら
- 使い方は,"OpenIMG.java"をImageJでコンパイルするか,コンパイル済みである"OpenIMG_.class"を自分のImageJのpluginsフォルダに入れる.pluginsフォルダにはさらにフォルダを作成して整理してもいい.実行するには,ImageJを起動して,メインWindowのPluginsの中のOpenIMGをクリックする.ファイルを開くためのダイアログが表示されるので,開きたいファイルを選ぶ.
- しかし,いちいちpluginを選ばないとファイルを開けないようでは面倒なので,既存の"HandleExtraFileTypes.java"を修正して,Drag&Dropで.imgファイルが開けるようにした."HandleExtraFileTypes"はDrag&Dropを制御しているpluginであるようだ.下記に修正した"HandleExtraFileTypes.java"とそれをコンパイルした"HandleExtraFileTypes.class"を載せている.このjavaのコードをダウンロードして必要箇所をコピーするか,面倒なら既存の"HandleExtraFileTypes.class"とこの新しいものを交換すればいい."HandleExtraFileTypes.java"と"HandleExtraFileTypes.class"はpluginsフォルダのInput-Outputフォルダに初めからインストールされている.
- このコードでポイントは,拡張子毎に対応するpluginを割り振っている箇所である.".img"の拡張子はすでに別のpluginに割り振られている.ここを修正して"OpenIMG"を指定するか,本コードのように,さらにif文で".img"特有の条件を追加すればいい(下にコードの抜粋を添付した).
- HandleExtraFileTypes.java
- HandleExtraFileTypes.class
- ちなみに,この修正を施すと,".img"ファイルを複数選択し,これをImageJにDrag&Dropすると,全部一気に開いてくれる.後で,これをstack化するなどすれば,編集や解析が楽になる.
- また,これらをさらに自分で編集すれば,ImageJにはまだない特殊拡張子を持つファイルを開くpluginを作成できる.さらに,これを"HandleExtraFileTypes"に登録すれば,Drag&Dropで簡単に開くことができる.ただし,上述したように,すでに"HandleExtraFileTypes"に登録されている拡張子と同じものを追加しても,ファイルの上段に書かれたコードだけが実行されるので,下記のようにif文で条件を増やすなどしなくてはならない.
-
//Hamamatsu photonics IMG image file (.img) handler
//2015.11.08 Satoshi Matsuyama Added the code.
//下のifで拡張子の認識と,バイナリファイルの最初の4バイトの識別をしている.これはimgファイルに共通のパターン
if (name.endsWith(".img") && buf[0]==73 && buf[1]==77 && buf[64]==91 && buf[65]==65 && buf[66]==112) {
return tryPlugIn("OpenIMG_", path);
}