画像解析ソフトの定番 ImageJ のまとめ

前ページへ | 目次 | 次ページへ
(このページのオリジナルページ:Plugins Menu


はじめに

Plugins (プラグイン)と macros (マクロ)は、ImageJ の機能を拡張するモジュールで、呼び出して実行できるプログラムコードである。プラグインは Java プログラム言語で書かれていて、.class (クラス)ファイルにコンパイルされている。マクロは Java に似た、ImageJ のマクロ言語で書かれており、テキスト(.txt)ファイルで保存される。プラグインのほうが動作が速くて融通が利くが、マクロの方が書きやすくデバッグも楽である。プラグインとマクロは、plugins フォルダに保存してあり、ファイル名に(1つ以上の)アンダースコア "_" が使われていれば、Pluginsメニューの一番下にリスト表示される。plugins フォルダの内部のサブフォルダに保存されているプラグインとマクロはサブニューとして表示される。プラグインやマクロにキーボードショートカットを割り当てるには、Shortcutsメニュー>Create Shortcutを使う。

Recorder(レコーダー)(Macrosメニュー>Record)を使うと、一連のコマンドを記録し、それをマクロに変換できる。マクロをプラグインに変換するには、エディターで Editメニュー>Convert to Plugin を使う。注意点は、Editメニュー>Convert to Pluginコマンドはエディタウィンドウ(レコーダーで "Create" ボタンをクリックすると作成される)でしか利用できないこと、そしてマクロコードによっては正しく変換されないことがある点。新しいマクロ、スクリプト、プラグインを作成するときは、New サブメニュー内のコマンドを利用する。"o" キーを押すか Fileメニュー>Open でマクロ、スクリプト、プラグインを呼び出せる。ImageJ のウェブサイトでは、500以上のプラグイン300以上のマクロを利用可能。プラグイン作成者用のチュートリアルがwww.imagingbook.com で利用できる。また、ImageJ プラグイン開発用に用いる Eclipse(tutorial1, tutorial2)、 NetBeansXcode IDEs などの利用法のチュートリアル盛りようできる。マクロについての情報は、ImageJ ウェブサイト内で利用可能

Internal Plugins(内部プラグイン)

ImageJ のほとんどのコマンドは、プラグインとして組み込まれているが、これらの内部プラグインは plugins フォルダにあるわけではなく、ij.jar ファイル内に保存されている。ij.jar ファイルには、properties ファイル(IJ_Props.txt)も保存されており、これにより内部プラグインがメニューにインストールされている。JAR ファイル(JAR:Java ARchive、Java 保存形式の略) は ZIPファイルと同じ形式なので、ij.jar の内容を見るには ZIP ファイル用のユーティリティを使用できる。

内部プラグインをユーザープラグインに変換するには、内部プラグインのソースコードを plugins フォルダにコピーし、ファイル名と class 名にアンダースコア "_" を加えて、package statement を import statement に変更すればよい。たとえば、RoiManager(Analyzeメニュー>Tools>ROI Manager)をユーザープラグインにするには:
  1. ImageJ のソースコードの最新版をダウンロードする。
  2. ij/plugin/frame/RoiManager.java を plugins フォルダにコピーする。
  3. ファイル名を Roi_Manager.java に変更する。
  4. Fileメニュー>Open で Roi_Manager.java を開き、すべての instances (4) の "RoiManager" を "Roi_Manager" に変更する。
  5. 最初1の行を "package ij.plugin.frame;" から "import ij.plugin.frame.*;" に変更する。
  6. エディターの Fileメニュー>Compile and Runを使い、新しいプラグインを実行する。

次に ImageJ を再起動すると、新しい Roi Manager コマンドができる。

Plugins ディレクトリ の場所を変更する

"plugins.dir" プロパティで、plugins ディレクトリの保存場所を指定できる。このプロパティはコマンドラインから設定するか、ImageJ を起動する Java プログラムから設定できる。たとえば、ImageJ を以下のようなコマンドで起動すると、
java -Dplugins.dir=/Users/wayne -cp ij.jar ij.ImageJ
plugins フォルダを、/Users/wayne/ ディレクトリ内で探す。このプロパティは、ImageJ を起動するプログラム内でも設定できる:
System.getProperties().setProperty("plugins.dir", "/users/wayne"); new ImageJ(null);

Macros (マクロ)サブメニュー

このサブメニューには、マクロのインストール、実行、記録を行うコマンドが含まれ、また Pluginsメニュー>Macros>Install で加えられたすべてのマクロコマンドが含まれる。macros フォルダの "StartupMacros.txt" というファイルに含まれるマクロは ImageJ 起動時に自動的にこのサブメニューに加えられる。
Install(インストール)...
このサブメニューの一番下に、1つのファイル内に含まれるひとつまたは複数のマクロを追加する。マクロのセットをインストールし、同時にそのソースコードもみるには、Fileメニュー>Open でマクロファイルを開き、エディターの Macrosメニュー>Install Macros コマンドを使う。ImageJ/ macros/StartupMacros.txt ファイルにあるマクロは、ImageJ 起動時に自動的にインストールされる。
Run(実行)...
マクロを ImageJ のエディターで開かずに読み込んで実行する。マクロを実行すると同時に、そのソースコードを見るには、Fileメニュー>Open でマクロを開き、エディターの Macrosメニュー>Run Macro
コマンドを使う。
Record(記録)...
ImageJ のコマンドレコーダーを開く。マクロを作成するには、レコーダーを開き、1つ以上の ImageJ のコマンドを使用してから、"Create" をクリックする。レコーダーが開かれているときに使われたメニューコマンド一つ一つがマクロの run() 関数呼び出し(function call)を生成する。run() 関数は1つか2つの文字列の引数をもつ。1つ目はコマンド名。2つ目はオプションの引数で、ダイアログボックスのパラメータを含む。

長方形、楕円形、直線の選択範囲を作成すると、レコーダーは makeRectangle(), makeOval() or makeLine() の関数呼び出しを生成する。Imageメニュー>Adjust>Threshold ウィンドウで "Auto" または "Set" をクリックすると setThresold() を呼び出し、"Reset" をクリックすると、resetThresold() を呼び出す。Window メニューで 画像を選ぶと selectWindow() 呼び出しが生成される。Imageメニュー>Color>Color Picker をクリックすると、setForegroundColor() と setBackgroundColor() 呼び出しが生成される。

Shortcuts (ショートカット)サブメニュー

このサブメニューは、キーボードショートカットを生成し、プラグインをインストールまたは削除するコマンドを含む。
Create Shortcut(ショートカットを作成)...
ImageJ のメニューコマンドにキーボードショートカットを割り当て、そのショートカットを Shortcuts サブメニューのリストに加える。



ポップアップメニューからコマンドを選び、テキストフィールドにショートカットを入力する。ショートカットに使えるのは、小文字または大文字と "F1" から "F12"まで。すでにショートカットに使われている文字のリストは、Pluginsメニュー>Utilities>List Shortcuts で表示される。
Install Plugin(プラグインをインストール)...
ユーザーの指定したサブメニューにプラグインをインストールする。showAbout() メソッドをもっているプラグインは、自動的に Helpメニュー>About Pluginsサブメニューにも加えられる。



プラグインを選ぶのは1つめのポップアップメニューを使い、インストール先のサブメニューを選ぶのは2つめのポップアップメニューを使う。すでに存在している ImageJ のコマンドと異なっているコマンドでないといけない。(オプションの)Shortcut(ショートカット)は何か1文字、または "F1" から "F12" でないといけない。(オプションの)Argument(引数;ひきすう)は、プラグインの実行メソッドに渡される文字列である。
Remove(削除)...
Create Shortcuts により Shortcuts サブメニューに加えられたコマンドを削除する。また、Install Pluginによって加えたコマンドの削除、Plugins メニューにインストールされたプラグインの削除も行う。このメニューは ImageJ を再起動するまでアップデートされない。

Utilities(ユーティリティ)サブメニュー

このサブメニューにはいくつかの便利な機能が含まれる。
Control Panel(コントロールパネル)...
このコマンドでは、ImageJ のコマンドが階層的なツリー(木)構造で示されたウィンドウが開く。葉ノード(node;節)をクリックすると、該当する ImageJ のコマンドやプラグインが起動する。ツリーの枝ノード(フォルダ)をダブルクリックすると、そこが広がったりたたまれたりする。ツリーの枝ノード(フォルダ)をクリックしてドラッグすると、それより枝先の部分が、別の(子)ウィンドウに表示される。子ウィンドウでは "Show Parent" をクリックすると親ウィンドウが再び開く。このコントロールパネルは Cezar M. Tigaret の ImageJ プロジェクトによって寄贈された。


ImageJ Properties(ImageJ プロパティ)...
このコマンドは ImageJ の様々なプロパティがテキストウィンドウに表示される(Java バージョン、OS 名とバージョン、パスの識別子、ディレクトリの配置、スクリーンサイズ、他)。
List Shortcuts(ショートカットのリスト)...
このコマンドは、1列目にキーボードショートカットが、2列目にそれにより呼び出されるコマンドが表示されるテーブルを生成する。注意点は、キーボードショートカットを使うときは [CTRL] キーを同時に押す必要はないこと。たとえば、画像を開くには、"o" キーを押すだけ。
Threads(スレッド)...
このコマンドは、現在動作中のスレッドとその優先度をテキストウィンドウに表示する。
Benchmark(ベンチマーク)
現在の画像上で、62種類の画像処理命令を実行し、その経過時間を ImageJ ステータスバーに表示する。最速のシステム(2007年初頭時点)では、512x512 の RGB 画像(例:Fileメニュー>Open Samples>Mandrill)でテストするとほぼ1秒かかる。他のベンチマーク、テスト結果、ソースコードは、プラグインの Benchmarks パッケージで利用できる。
Reset(リセット)...
このコマンドを使うとロックした画像をロック解除したり、クリップボードや Undo バッファが使用しているメモリを解放したりできる。
Monitor Memory(メモリ表示)...
ImageJ のメモリ使用量を、刻々とアップデートするグラフで表示する。メモリリークを検出するのに役立つ。理想的には、何枚かの画像を開いて処理した後、画像を閉じると使用メモリは最初と同じになるはずである。ImageJ ステータスバーをクリックすると、Java ガベージコレクターが動作し、未使用メモリが再生利用できるようになる。[ALT]キーを押しながらメモリモニターを開始すると、640x480 のウィンドウを使い、フレーム取込み(frame grabber) プラグインの動作をシミュレートできる。


Search(検索)...
選択したフォルダ内のファイル名やファイルの内容から、特定の文字列(大・小文字を区別する/しない)を帰納的に検索する。結果は Log ウィンドウに表示される。"Search Contents" オプションがチェックされていると、文字列が見つかった行番号も表示される。Log ウィンドウではファイルパスをダブルクリックするとエディタウィンドウでそのファイルが開かれる。



オプションにより、macros フォルダを検索したり、ImageJ ソースコードを検索したりできる(ただし、ImageJ ソースコードは rsb.info.nih.gov/ij/download/src/ からダウンロードし、ImageJ フォルダ内に解凍してある場合のみ)。
Capture Screen(スクリーン取り込み)
スクリーンをRGB 画像にコピーし、新しいウィンドウに表示する。モーダルダイアログボックス*1が表示されているときは、それが ImageJ の GenericDialog class (一般用ダイアログ生成クラス)によって生成されているものなら、[CTRL] + [SHIFT] + g を押すとスクリーンが取り込まれる。
Find Command(コマンド検索)
Command Finder(コマンド検索)は Mark Longair 作で、コマンドの名前は知っているらしいのに、メニューのどこにあるのかは全部開けてみないとわからない場合にコマンドを探す簡単な方法である。コマンド名の一部を入力すると、名前の一部が一致しているコマンドの一覧が表示される。合致するコマンドの候補が1つだけのときは、[ENTER] を押すとコマンドを実行できる。複数のコマンドが合致しているときは、マウスでコマンドを選んで実行する。あるいは、[UP]、[DOWN] キーを押すとキーボードフォーカスがコマンド一覧に移り、[ENTER] を押すと選択されているコマンドが実行される。[BACKSPACE] を押すとフォーカスが切り替わってプロンプトに戻る。コマンドをダブルクリックするとそのコマンドが実行される。[ESC] を押すとウィンドウが閉じる。

New (新規)サブメニュー

このサブメニューは、マクロやプラグインを編集・実行できるエディタを開くコマンドを含む。また指定したサイズのテキストウィンドウを開くコマンドや、マクロを書き込めるテーブルを開くコマンドも含まれる。PlugInPlugInFilterPlugInFrame により開かれたエディタウィンドウは ImageJ でサポートされる3タイプのプラグインのためにプロトタイプの Java コードを含む。
Macro(マクロ)
"Macro.txt" というタイトルの空のエディタウィンドウを開く。ウィンドウには Macros メニュー があり、ImageJ のマクロを実行、インストール、中断できる。ショートカットとして、[SHIFT] + 'n' (Fileメニュー>New>Text Window)を押すと、マクロエディタウィンドウが開く。
JavaScript(ImageJ 1.41 またはそれ以降が必要)
"Script.js" というタイトルの空のエディタウィンドウ開く。エディタウィンドウの Macrosメニュー>Run Macro コマンドで JavaScript の評価ができる。それに必要な JavaScript のインタープリター(Mozilla Rhino)は Windows用、Linux 用の Java 1.6 に組み込まれている。マックユーザやそれ以前のバージョンの Java のユーザは plugins フォルダに JavaScript.jar をコピーして入れておく必要がある。このファイルは Mac 版 ImageJ 1.41 に同梱され、ImageJ/plugins/tools フォルダにある。

JavaScript プラグラムの例は、rsb.info.nih.gov/ij/macros/js/ で利用できる。サンプルプログラムを実行するには、ダウンロードしたら "ImageJ" ウィンドウにドラッグ&ドロップし、[CTRL] + 'r' (Macrosメニュー>Run Macro)を押す。または、それをクリップボードにコピーし、このコマンドで生成されたウィンドウに貼り付けし、[CTRL] + 'r' を押す。Albert Cardona による Javascript Scripting チュートリアル(Javascript 記述のチュートリアル)にも実例がある。
PlugIn(プラグイン)
エディタウィンドウが開く。ウィンドウには、プラグインのインターフェイスを備えたプラグインのプロトタイプが含まれる。このタイプのプラグインが開くと、画像がキャプチャされるか生成される。プロトタイプは ImageJ ウィンドウに "Hello world!" と表示する。これをコンパイルし、実行するには [CTRL] + 'r'(Fileメニュー>Run Macro)を押す。注意点は、プラグインにつける名前には少なくとも1つのアンダースコアが含まれる必要があること。他の例は、Step Maker プラグインで、http://rsb.info.nih.gov/ij/plugins/steps.htmlにある。
PlugInFilter(プラグインフィルター)
エディタウィンドウが開く。ウィンドウには、プラグインのインターフェイスを備えたプラグインのプロトタイプが含まれる。このタイプのプラグインはアクティブな画像を処理する。プロトタイプはアクティブな画像を2回反転する。他の例は Image Inverter (画像反転)プラグインで http://rsb.info.nih.gov/ij/plugins/inverter.html である。
PlugInFrame(プラグインフレーム)
エディタウィンドウが開く。ウィンドウには、PlugInFrame クラスを拡張するプラグインのインターフェイスを備えたプラグインのプロトタイプが含まれる。このタイプのプラグインはボタンやスライダーのようなコントロールをもつウィンドウを表示する。プロトタイプはテキストエリアを含むウィンドウを開く。他の例は IP Demo プラグインでこれは http://rsb.info.nih.gov/ij/plugins/ip-demo.html にある。
Text Window(テキストウィンドウ)
マクロを書き込むことができる、指定されたサイズのウィンドウを開く。テキストウィンドウに書くマクロの例は PrintToTextWindowClockProgressBar などで。
Table(テーブル)
空白のテーブルを開く。テーブルは Results テーブルに似ており、マクロを書き込める。SineCosineTable がこのようなマクロの実例である。

これらのコマンドで生成されたエディタウィンドウには、Editメニュー>Zap Gremlins コマンドがある。このコマンドは、メール本文のような外部の情報をカットして貼り付ける際にたまに現れる、見えない文字が混入したのを見つけて削除する。

Compile and Run(コンパイルと実行)...

プラグインをコンパイルし、実行する。選択したファイルのファイル名が ".class" で終わっていればプラグインが実行される。ImageJ が javac コンパイラを含む Java 仮想マシン上で動作している必要がある。javac コンパイラは tools.jar アーカイブに含まれる。tools.jar は Windows 版とLinux 版 ImageJ の Java バンドル版には含まれていて、Mac OSX にはプレイストールされている。トラブルシューティング情報は、Linux 版Windows 版のリリースノートの "Compiling Plugins" (プラグインのコンパイル)にある。

Editメニュー>Options>Compiler コマンドは、Compile and Run で使用される javac コンパイラの設定を行うダウアログボックスが表示される。


Amazon リンク
※ Kindle版(iPad, Android)あり

※ Kindle版(iPad, Android)あり

※ Kindle版(iPad, Android)あり




(このページのオリジナルページ:Plugins Menu
前ページへ | 目次 | 次ページへ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます