wet-to-dry’s blog

京大大学院生の備忘録ブログ

Olympus顕微鏡でとったTiff画像をImageJで彩色し、Jpegで保存するマクロ3

概要

以前、記事をツイートしたら、画像に名前を埋め込めば直接パワポに張り付けられて便利だというアドバイスをもらったので、実装してみました。

やったこと

以下に新しいコードを書きます。

参考にしたのはこちら

https://imagej.nih.gov/ij/macros/examples/TextOverlay.txt

// ----- 200312 tiff to jpeg (for fluorescent photos).ijm -----
//フォルダのpathを取得
folderdirectory = getDirectory("Choose a Directory");

//ファイル名を参照元ディレクトリから配列で取得
filelist = getFileList(folderdirectory);


//繰り返し処理
for (i=0; i<filelist.length / 2; i++) {

//ファイル名の指定
filenameBF = filelist[i * 2];
filenameFT = filelist[i * 2 + 1];

filedirectoryBF = folderdirectory + "\\" + filenameBF;
filedirectoryFT = folderdirectory + "\\" + filenameFT;


//まずBF作業
//画像を開く
open(filedirectoryBF, 1);

//画像を12-bitに設定
setMinAndMax(0, 4095);
call("ij.ImagePlus.setDefault16bitRange", 12);
run("Apply LUT");

//画像名textの書き込み
setFont("Times New Roman", 100, "bold");
makeText(File.getNameWithoutExtension(filenameBF), 10, 20);
run("Add Selection...", "stroke=black fill=none new");

//保存
saveAs("jpeg", folderdirectory + File.getNameWithoutExtension(filenameBF) + ".jpeg");
close();


//次にFT作業
//画像を開く
open(filedirectoryFT, 1);

//画像を12-bitに設定、輝度を下限500に設定
setMinAndMax(500, 4095);
call("ij.ImagePlus.setDefault16bitRange", 12);
run("Apply LUT");

//蛍光色(疑似カラー)をつける
run("Green");

//画像名のtextの書き込み
setFont("Times New Roman", 100, "bold");
makeText(File.getNameWithoutExtension(filenameFT), 10, 20);
run("Add Selection...", "stroke=white fill=none new");

//保存
saveAs("jpeg", folderdirectory + File.getNameWithoutExtension(filenameFT) + ".jpeg");
close();


//最後にMerge作業
//それぞれの画像を開き、12-bitに設定、輝度を下限500に設定
open(filedirectoryBF, 1);
setMinAndMax(0, 4095);
call("ij.ImagePlus.setDefault16bitRange", 12);
run("Apply LUT");

open(filedirectoryFT, 1);
setMinAndMax(500, 4095);
call("ij.ImagePlus.setDefault16bitRange", 12);
run("Apply LUT");

//Mergeする
run("Merge Channels...", "c2=[" + filenameFT + "] c4=[" + filenameBF + "] create");

//画像名のtextの書き込み
setFont("Times New Roman", 100, "bold");
makeText(File.getNameWithoutExtension(filenameFT) + " Merge", 10, 20);
run("Add Selection...", "stroke=black fill=none new");

//保存
saveAs("jpeg", folderdirectory + File.getNameWithoutExtension(filenameFT) + " Merge.jpeg");
close();

}

大きな木さん、ありがとうございました。