ImageJのマクロを作りたいと思ったことはありませんか?
ImageJに用意されたレコーダー機能を利用することで、普段行っている操作を簡単にマクロにすることができます。
マクロは一連の命令を自動的に実行するためのスクリプトで、特定のタスクを自動化するのに役立ちます。
Windows11(22H2), ImageJ 1.54d
レコーダーとは?
ImageJのレコーダー機能は、実行した操作をマクロの形式で記録するツールです。
例えば、画像を開いたり、フィルターを適用したり、測定を行ったりなどの操作を行うと、それぞれの操作に対応するマクロコードが生成されます。これにより、マクロの書き方に不慣れな方でも、画像解析手順をマクロに変換することができます。
レコーダーで作成したマクロはそのまま実行したり、あるいはさらに自身で編集を加えることができるので、ImageJの画像解析の効率化を進める際にとても便利な機能となっています。
マクロとは?
ImageJのマクロ機能は、マクロ言語で書かれたスクリプトを実行することで画像処理のタスクを自動化するための強力なツールです。マクロを使用することで、繰り返し行う処理を自動化し、作業の効率化が図れます。また、カスタムツールの作成も可能です。
ImageJのWebサイトには、マクロのサンプルが用意されており、それらを使用することでさまざまな画像処理タスクを簡単に実行することができます。さらに、レコーダー機能を使用することで、簡単にマクロコードを生成し、デバッグすることができます。
レコーダーの使用方法
ImageJでのレコーダーの使用方法を以下に解説します。
レコーダーの起動
まず、ImageJを起動して、Plugins > Macros > Record… を選択します。
すると以下のようなウィンドウが開かれるので、「Record:」に「Macro」を選択します。
この後、ImageJ上で行った操作はマクロとしてレコーダーに記載されていきます。
画像を開く
それでは、今回はサンプル画像のLeafを使い、葉っぱの境界線を抽出する処理をレコーダー機能を使ってマクロ化してみましょう。
File > Open Samples > Leaf を選択し、葉の画像を開きます。
画像をグレースケールに変換
次に境界を検出するために画像をグレースケールに変換します。
メインメニューからImage > Type > 8-bit を選択すると開いた画像が白黒の画像に変換されます。
エッジフィルタで画像内の境界を検出
エッジフィルタ機能を使い、画像内の境界を強調します。
メインメニューから Process > Find Edges を選択すると開いた画像の境界が強調され次の画像に変換されます。
境界線を描画
最後に画像の閾値を調整し、エッジフィルタで強調した境界線以外が背景になるように調節します。
メインメニューからImage > Adjust > Threshold… を選択すると、画像のようなThresholdのウィンドウが開くので、今回はそのまま「Apply」を選択しましょう。
すると次の画像のように閾値が調整された画像に修正されます。
マクロファイルの保存
ここまで操作を行うとレコーダーのウィンドウでは次のようになっているはずです。これが今まで行ってきた操作をマクロとして記述したものとなります。それでは、右上の「Create」を選択し、レコーダー内の内容をマクロファイルとして出力します。
すると新しく以下のようなウィンドウが開きます。ファイルとして保存する場合は、File > Save As…で好きなファイル名で保存ができます。
マクロの実行
最後に作成したマクロが期待通りに動作するか確認するため実行してみます。実行する際は左上の「Run」をクリックします。
先ほど作成したLeafの境界線の画像と同じ画像が新しく作成されれば、マクロファイルの動作確認の完了です。
最後に
今回はImageJのレコーダー機能を使ったマクロの作成方法について紹介しました。
レコーダー機能を使えばマクロの書き方に不慣れでも簡単にマクロが作成でき、繰り返し行う解析の手間を減らすことができます。
ぜひ活用して、ImageJの画像解析の効率化を進めていただければと思います。