スポンサーリンク

初めてのImageJマクロ(2)特定の画像を2値化して別のフォルダに保存する

2020年9月15日

ImageJ(Fiji)のマクロを触てみるシリーズの1回目では、コンソール画面にHello World!と表示してみました。

2回目の今回は、自分のパソコンのフォルダ内の特定の画像ファイルを2値化して、別の名前で保存するマクロを組んでみたいと思います。

スポンサードリンク

やりたいこと

  1. C:/images/input/ フォルダ内の 画像ファイルocta001.jpg を開く
  2. octa001.jpg を2値化
  3. 2値化した画像を C:/images/output/ フォルダ にbinary_octa001.jpg という名前で保存する

開発環境

Windows10 Pro 1803
Fiji (ImageJ 1.52n)

Fijiのインストールについては、
http://i-doctor.sakura.ne.jp/dokuwiki/doku.php/imagej/index.html
をご覧ください。

フォルダと画像の準備

C:/imagej/ フォルダ
C:/imagej/input/ フォルダ
C:/imagej/output/ フォルダ
を作成し、 C:/imagej/input/ フォルダ の中に、

octa001.jpg

を保存しておきます。

ImageJ(Fiji)の起動とScript画面(マクロ)の起動

ImageJを起動後、 メニューバーの一番左の File をクリックし、順番に、New > Script とクリックします。

Language > IJ1Macro の順にクリックします。

以下のような状態になります。

画像の場所を探す

New_.ijm に、以下を入力してRunを押します。

f = File.openDialog("a file");
print(f);

以下のように新しいウィンドウが開くので、
C:/images/inpurt/octa001.jpg
を選択して、開く をクリックします。

Logウィンドウが開くので、そこに記載されている文字列を 右クリック > Copy で、コピーします。今回は、

C:\imagej\input\octa001.jpg

となっていました。

少し簡単なマクロを書いてみる

まずは、こちらのサイトのコードをほぼコピペして、以下のようなプログラムを書いてみたいと思います。

  1. C:/imagej/input/octa001.jpgを開き、
  2. tifファイルに変換して
  3. C:/imagej/output/example_octa001.jpg.tifという名前で保存する

File > New で、以下のコードをコピペします。

//参照元(\は\\で。画像ファイル以外も開いてしまうので注意)
inputdirectory = "C:\\imagej\\input";

//出力先(\は\\で)
outputdirectory = "C:\\imagej\\output";

//出力するファイル名の頭につける文字列
prefix = "example_";

//ファイルを開く
open(inputdirectory + "\\" + "octa001.jpg");

//Tiffファイル形式でファイルを出力先に保存
saveAs("Tiff", outputdirectory + "\\" + prefix + "octa001.jpg" + ".tif");

//ファイルを閉じる
close();
  1. Language > IJ1Macro を選択し、
  2. さらに、Run をクリックします。

すると、画面は以下のようになります。

C:/imagej/output/ フォルダを開いてみると、以下のように新しい画像ファイルが保存されており、

このexample_octa001.jpg.tif を、右クリック > プロパティ をクリックすると、以下のように表示され、jpgファイルがTIFファイルに変換されて保存されていることがわかります。

なお、変換前の C:/imagej/output/octa001.jpg を右クリック > プロパティ を開いてみると、以下のような感じでした。

次に、上のコードを少し変更して、2値化して画像を保存するようにしてみたいと思います。

ImageJマクロのRecorderの利用

ImageJのマクロを作成するときは、

『 Recorder(レコーダー)』

といって、自動化したい操作を、一度手動で行い、それをマクロのコードに変換してくれる

という機能を利用するのがお勧めです。以下のような流れになります。

  1. ImageJ(Fiji)のトップ画面から、Plugins > Macros > Record…  をクリック
  2. Recorderウィンドウが開くので、自動化したい操作を手動で行う
  3. このとき、Recorderに表示される文字列をテキストファイルとして保存し、.ijm ファイルにマクロとして保存する。

参考: https://sites.google.com/site/imagejmacronojueshu/makuro/foruda-neiheno-zi-dong-chu-li

参考2:http://192168111.blog71.fc2.com/blog-entry-56.html

参考3: https://note.mu/kdgn/n/ne4282746fe63

途中

スポンサーリンク