2015年12月10日木曜日

第60回 ImageJによるGUIの活用で学ぶ!

この記事は参考記事を援用して、筆者の考えも交えつつ、記述しています。

ImageJではユーザが独自にプログラム開発を行ってオリジナルのImageJを作成することができます。(その方法には、ImageJの開発用にパッケージ化されたJava言語のライブラリを用いる方法や、マクロというImageJ特有のマクロ言語を用いる方法の二つがあります。)

今回はImageJを使いやすくするために、ユーザ自らがアイコンなどを作成して、ImageJのルックアンドフィールをアレンジする方法を紹介します。

プラグインの準備


まず、ImageJでグラフィカルユーザインターフェース(GUI:ジーユーアイまたはグイ)を作成するためのプラグインをインストールします。プラグインファイルは”Action Bar Plugin”です。

http://imagejdocu.tudor.lu/doku.php?id=plugin:utilities:action_bar:start

このプラグインは、Jerome Mutterer氏(Institut de Biologie Moleculaire des Plantes, Strasbourg)によって作成されたものです。

このActionBarプラグインは、ダウンロード後、解凍して、フォルダごとPluginsフォルダにコピーすれば使えるようになります。フォルダ構成と内容は以下のようにしてみました。

ImageJ/plugins/ActionBar               Action Bar プラグイン用フォルダ
action_bar202.jar        ActionBarフォルダにjarを配置
icons/              ActionBarフォルダにiconsフォルダを作成

さっそく、ActionBarの動作を確認していきましょう。
次のようなGUIが自在に使えるようになりますよ。

(http://imagejdocu.tudor.lu/doku.php?id=plugin:utilities:action_bar:startより引用)

ユーザー自身でよく使うアイコンをあらかじめ作成しておき、開始時に表示させれば作業効率が向上します。

アイコンの操作方法


アイコンを独自でコントロールする場合に、ActionBarの構成を変更することができます。プラグインメニューから”ActionBar”を選択すれば、図のようなウィンドウが表示されます。


このウィンドウの中のタイトルに従って、テキストボックスを埋めていくと、独自のGUIを構成することができます。
前述の図のテキストボックス変更せず、デフォルトでOKボタンを押すと、次の図のようなGUIとマクロコードが自動表示されます。



このコードを改変すると、独自のGUIが作成できます。例として、次のようなコードに改変してみました。1つ目のボタンを以下のように変更してみます。

<line>
<button> 1 line 1
label=hello
icon=noicon
arg=<macro>
showMessage("Good luck");

</macro>

もし、ActionBarプラグインを起動させている場合は、一旦GUIを終了させてから、このマクロを、ImageJのメニューから"Run Macro"します。(もしくは、このコード上で、Ctrl+Rを押す)そうすると、ビルドされて、書き換えられたGUIが表示されます。

(ライン1の一つ目のボタンが変わり、ボタンを押すと、指定した文字列が表示される。)

このように、新しいボタンを作成するには以下のルールに従うようにします。

⑴新しいボタンは<button>タグを宣言する
⑵2番目のラインは、「label=」キーワードで続けて入力する
⑶3番目のラインは「icon=」キーワードで画像を入力できる
→ImageJ/Plugins/ActionBar/icons folder下に画像を用意しておくか、アイコンを使用しない場合は「noicon」キーワードを入力する。画像を用意する場合は、画像までの相対パスを"icon="以降に記録する(例えば、"VIS-test-ActBar/abc.png"など)。
⑷最後のコードには「arg=」キーワードを入力する。これはボタンキーが押された時に動作するアクションを入力する。

arg=の書き方は、標準的には1ラインで下記のように記述します。
arg=if(isOpen(“Log”)) selectWindow(“Log”); run(“Close”);

しかし、これではわかりにくという場合には、arg=の次に<macro></macro>または<tool></tool>を挟んで記述すれば、プログラムがわかりやすくなる場合があります。

・簡単な実行処理記述が長くなる時は<macro></macro>で囲む。

arg= <macro>
if (isOpen(“Log”)) { 
selectWindow(“Log”); 
run(“Close”); 
}
</macro> 

・ImageJ Tool機能を使う場合は、<tool></tool>で囲む。

arg=<tool>
getCursorLoc(x, y, z, flags);
print(“Pixel: ”+x+“ ”+y+“ Value: ”+getPixel(x,y));

</tool>

より詳しいGUIのタグの説明は割愛しますが、同プラグイン配布ページにPDFファイルによる詳細な説明があるので、参照してみてください。

(こちら)
http://imagejdocu.tudor.lu/lib/exe/fetch.php?media=plugin:utilities:action_bar:mutterer_workshop.pdf

ActionBarのフォルダ下には幾つかのサンプルマクロが入っているので、参考にしながら、独自のアイコンとイベント処理コードを書くのが最も近道です。特に画像を開くと、その画像に磁石のようにアタッチメントされるSticky Barマクロなどは、非常に便利なGUIマクロです。

FigureJ


もう一つ、このJerome Mutterer氏が新たに開発されているプラグイン「FigureJ」を続けてご紹介いたします。

http://imagejdocu.tudor.lu/doku.php?id=plugin:utilities:figurej:start

このプラグインは、ActionBarとは違い、論文やレポートに画像の図を綺麗に作る時に使われるツールです。

機能は以下の通りです。

  • 簡単に図のレイアウトを作成
  • 視覚的にパネルに画像を配置
  • 画像のスケーリングやローテーション
  • ラベルやスケールバーの設置
  • パネルごとにオリジナルの画像データソースを扱える
  • 保存と再編集
  • 各パネルの編集ログと一緒に画像を一般的な画像フォーマットでエクスポート
インストールは、いつも通り、以下のJarファイルを一つのフォルダにまとめ、pluginsフォルダに配置します。

  • figurej_110b.jar → get it from this link
  • LSM_Reader.jar → get it from this link and unzip it in your plugins folder.
インストールができたら、プラグインメニューからFigureJを起動してみます。すると、次のような小さいウィンドウが現れます。


この図の「New」または「Open」を押して、編集ウィンドウを開きます。今回は、「New」を押してみます。
すると、図の作成をするためのウィンドウの設定画面が現れるので、そのままデフォルトのままOKします。


そうすると、図を編集するためのメインウィンドウが立ち上がります。


ここで、レイアウトを決めてみます。例えば、2段にして、上を2列、下を1列にしてみます。この作業を行うには、図を表示するウィンドウをアクティブにしてから、設定画面の「Split -」「Split |」を使います。

(まず上下に分割)
(上の列を2つに分割)

それから、パネルに画像をはめ込んでいきます。任意のパネルを選択してから、Open imageから画像を選択して、切り取りたい領域をROIを調整したら、「OK」として、それぞれのパネルに画像をはめていきます。

(任意の画像を開き、カットしたい領域を選択)
(すべてをはめ込んだ後の画面)

そして、せっかくなら文字も、という場合も、「more」ボタンからOption画面を起動して、Panel labelsの設定を調整して、アクティブになっている画像パネルの四隅に好きな文字、例えば、ABCなどをそれぞれの図に順番につけることもできます。この機能を使わなくとも、ImageJのテキスト入力機能でも同じような操作が可能です。



(順序を入力)

今回はImageJの操作に便利なマクロによるGUI作成方法および論文やレポートのための図のレイアウト作成について説明を行いました。次回も便利なツールの解説を行います。


参考記事:「山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(25・9) 2010, p100-101」

Visionary Imaging Services, Inc.は、イメージング技術サポートを通じて、創薬研究や医療機器開発など、臨床研究(臨床試験)サポートサービスを展開しております。OsiriXシリーズも販売中です!よろしくお願いします!

0 件のコメント:

コメントを投稿