0

私は 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();
}
4

1 に答える 1