私は ImageJ は初めてですが、マクロの作成についてもっと学ぼうとしています。
「10Xred.tif」、「10Xgreen.tif」、「10Xblue」、「10Xlr.tif」で終わる画像があります。異なるパラメータを使用して各色を処理したいと思います。
私が書いたコードは、入力フォルダーから出力フォルダーにすべてのファイルを処理せずに転送するだけです。どこに問題があるのか わかりません。
この質問が退屈であったり、フォーラムの目的にふさわしくない場合は申し訳ありません。あらゆるアドバイスをいただければ幸いです。
ありがとうございました。
input = getDirectory("Input directory");
output = getDirectory("Output directory");
Dialog.create("File type");
Dialog.addString("File suffix: ", ".tif", 5);
Dialog.show();
suffix = Dialog.getString();
processFolder(input);
function processFolder(input) {
list = getFileList(input);
for (i = 0; i < list.length; i++) {
if(File.isDirectory(list[i]))
processFolder("" + input + list[i]);
if(endsWith(list[i], suffix))
processFile(input, output, list[i]);
}
}
function processFile(input, output, file) {
title = (File.getName(input));
if (indexOf(title, "10Xblue") >= 0) {
run("Channels Tool...");
run("Blue");
run("Subtract Background...", "rolling=50");
run("Multiply...", "value=1.2");
run("Set Scale...", "distance=1 known=0.65 pixel=1 unit=µm global");
run("Scale Bar...", "width=100 height=5 font=18 color=White background=None location=[Lower Right] bold overlay");
run("RGB Color");
run("Flatten"); }
else if (indexOf(title, "10Xred") >= 0) {
run("Channels Tool...");
run("Red");
run("Subtract Background...", "rolling=50");
run("Multiply...", "value=1.350");
run("Scale Bar...", "width=100 height=5 font=18 color=White background=None location=[Lower Right] bold overlay");
run("RGB Color");
run("Flatten");}
else if (indexOf(title, "10Xgreen") >= 0) {
run("Channels Tool...");
run("Green");
run("Subtract Background...", "rolling=50");
run("Multiply...", "value=1.250");
run("Scale Bar...", "width=100 height=5 font=18 color=White background=None location=[Lower Right] bold overlay");
run("RGB Color");
run("Flatten"); }
else if (indexOf(title, "10Xlr") >= 0) {
run("Channels Tool...");
run("Magenta");
run("Subtract Background...", "rolling=50");
run("Multiply...", "value=1.200");
run("Scale Bar...", "width=100 height=5 font=18 color=White background=None location=[Lower Right] bold overlay");
run("RGB Color");
run("Flatten");
}
print("Processing: " + input + file);
open(input + file);
print("Saving to: " + output);
saveAs("TIFF", output+file);
close();
}