Макрос ImageJ для автоматического открытия стека с последующей обработкой и сохранением в виде tif в новом каталоге - PullRequest
0 голосов
/ 25 января 2020

Я пишу свой первый скрипт макроса ImageJ. Прямо сейчас у меня есть рабочий скрипт, который открывает файл в одном каталоге, удаляет первые 24 фрагмента из файла, а затем сохраняет файл в формате tif в другом каталоге. Проблема в том, что мои файлы являются стеками, и при открытии каждого файла мне выдается приглашение для параметров импорта биоформатов. Я хотел бы закодировать параметры в моем макросе, чтобы мне не приходилось каждый раз вручную подтверждать параметры. Может ли кто-нибудь дать мне руководство?

 dir1 = getDirectory("Choose Source Directory ");
dir2 = getDirectory("Choose Destination Directory ");
list = getFileList(dir1);
setBatchMode(true);
for (i=0; i<list.length; i++) {
 showProgress(i+1, list.length);
 open(dir1+list[i]);
 // INSERT MACRO HERE
 run("Slice Remover", "first=1 last=24 increment=1");
 saveAs("TIFF", dir2+list[i]);
 close();
}

1 Ответ

1 голос
/ 25 января 2020

Замените строку

open(dir1+list[i]);

на

s = "open=["+dir1+list[i]+"] autoscale color_mode=Grayscale rois_import=[ROI manager] view=Hyperstack stack_order=XYCZT";
run("Bio-Formats Importer", s);

Точное форматирование строки s зависит от того, какие настройки требуются для импортера Био-форматов. Если вы сделаете Plugins > Macros > Record, а затем откроете одно из ваших изображений, вы можете «записать» форматирование строки для использования в вашем макросе.

Альтернативный подход - сказать импортеру просто открыть файлы без используя диалог. Это может быть достигнуто путем проверки опции без окон для типа файла, который вы используете в конфигурации плагинов Био-Форматы. Однако это не надежное решение, потому что оно не будет (обязательно) работать для других, выполняющих ваш код.

...