1

チャネルをマージしてコントラストを自動的に強調するために、フィジーで非常に単純なマクロを作成しようとしました。

dir  = getDirectory("Select input directory"); out  = getDirectory("Select destination directory");
files  = getFileList(dir);
//foreach tiff couple files
for (j=0; j<lengthOf(dir);j+2) {
    channel1 = dir+files[j];
    channel2 = dir+files[j+1];
    open(channel1); 
    open(channel2);
    run("Enhance Contrast", "saturated=0.35"); // the same for the channel1
    run("Apply LUT", "stack"); // the same for the channel1
    run("Merge Channels...", "c1="+channel1+" c2="+channel2);
    run("Z Project...", "projection=[Sum Slices]");
    saveAs("Tiff", out+"merge"+files[j]);
    run("Close");
}

「コントラストを高める」で、マクロの明るさとコントラストウィンドウの「自動」ボタンの使い方がわかりません。チャネル 2 は最初のチャネルよりも強力です。

また、「LUT を適用」を使用すると、次の行があるとエラーが発生します。スレッショルドレベルを変更しましたが、まだ機能しません...

あなたは私に何を提案できますか?

4

1 に答える 1

1

ディスプレイの最小値と最大値が 0 と 255 の場合、 Apply Lut コマンド ( source ) でこのエラーが発生します。これは、画像のコントラストが既に高い場合に発生する可能性があります。以下にgetMinAndMax、表示範囲が変更されていない場合 (0 ~ 255) に適用ステップをスキップする条件を追加しました。

「コントラストを高める」で、マクロの明るさとコントラストウィンドウの「自動」ボタンの使い方がわかりません。

ドキュメントによるとrun("Enhance Contrast", "saturated=0.35")、B&C ウィンドウで Auto をクリックするのと同じです。

このプロセスをすべての画像で繰り返すか、2 番目のチャネルだけで繰り返すかはわかりません。以下は、各チャンネルのコントラストを個別に強化し、ループに関するいくつかの問題を修正するマクロです。

dir  = getDirectory("Select input directory"); out  = getDirectory("Select destination directory");
files  = getFileList(dir);
//foreach tiff couple files
    for (j=0; j<lengthOf(files);j+=2) { //fixed loop length and incrementor
    channel1 = dir+files[j];
    channel2 = dir+files[j+1];
    open(channel1); 
    image1 = getTitle(); // get the window name
    open(channel2);
    image2 = getTitle(); // get the window name

    selectWindow(image1); // focus on the first channel
    run("Enhance Contrast", "saturated=0.35 process_all"); // process all slices
    getMinAndMax(min,max);  // get display range
    if (min != 0 && max != 255) {  // check if the display has been changed
        run("Apply LUT", "stack"); 
        }

    selectWindow(image2); // repeating for the 2nd channel
    run("Enhance Contrast", "saturated=0.35 process_all"); // process all slices
    getMinAndMax(min,max); // get display range
    if (min != 0 && max != 255) {  // check if the display has been changed
        run("Apply LUT", "stack"); 
        }

    run("Merge Channels...", "c1="+image1+" c2="+image2); // use window names rather than full paths
    run("Z Project...", "projection=[Sum Slices]");
    saveAs("Tiff", out+"merge"+files[j]);
    run("Close All"); // make sure everything is closed
}
于 2016-02-18T15:31:05.490 に答える