Объедините 3 стека в ImageJ
Есть ли способ "Stack Combine" 3 стека рядом.
Image> Стеки> Инструменты> Объединить
Поддерживает комбинацию 2 стеков, бок о бок. Два способа обойти это:
- Объедините первые 2, затем объедините объединенное изображение в третий стек
- Создайте макрос, который делает выше
run("Combine...", "stack1=STAC1_NAME stack2=STACK2_NAME");
run("Combine...", "stack1=[Combined Stacks] stack2=STACK3_NAME");
Есть ли другой способ сделать это, так как, например, комбинируя 20 стеков бок о бок.
Добавлен фрагмент кода /
//Specify Folders here//
output = "PATH";
combined = "PATH";
original= "PATH";
//Batch Mode for ImageJ
setBatchMode(true);
list = getFileList(input);
for (i = 0; i < list.length; i++) {
combine(original, output, combined, list[i]);
}
setBatchMode(false);
function combine(original, output, combined, filename) {
//Open Outline & Overlay for Combine Stack//
name_outline = filename + "_outline.png";
name_overlay = filename + "_overlay.png";
name_ellipse = filename + "_ellipse.png";
name_original = replace(filename, "_watershed.tif", ".tif");
open(original + name_original);
run("RGB Color");
open(output + name_overlay);
run("RGB Color");
open(output + name_outline);
run("RGB Color");
open(output + name_ellipse);
run("RGB Color");
run("Combine...", "stack1=filename stack2=name_overlay");
rename("combinedstack01");
run("Combine...", "stack1=name_outline stack2=name_ellipse");
rename("combinedstack02");
run("Combine...", "stack1=combinedstack01 stack2=combinedstack02");
saveAs("PNG", combined + filename + "_comb.png");
run("Close All");
}
1 ответ
Согласно документации, нет:
http://imagej.net/Stack_Manipulation
http://imagej.net/Stack-slice_Manipulations
Однако вы можете легко обработать целую папку стека с помощью метода объединения, см.:
http://imagej.net/Batch_Processing
Вот пример макроса
Например (скорректировать пути! - для этого скрипта названы стеки 'stack1', 'stack2',....):
input = "C:\\Users\\test\\Pictures\\combine";
open("C:\\Users\\test\\Pictures\\combine\\stack1.tif");
rename("combinedStack");
list = getFileList(input);
for (i = 1; i < list.length; i++){
open(list[i]);
title=getTitle();
run("Combine...", "stack1="+title+" stack2=combinedStack");
rename("combinedStack");
}