Пакетная обработка в ImageJ выдает ошибку «Нет открытых изображений» - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь написать небольшой скрипт, который будет выполнять некоторые действия с серией изображений в ImageJ.Я использовал метод Script Template, описанный в https://imagej.net/Batch_Processing, однако я столкнулся с проблемой, что получаю сообщение об ошибке, в котором говорится, что изображения не открыты.Идея для меня заключалась в том, чтобы иметь код, который выполнял бы и обрабатывал изображения, не открывая их.Я попытался использовать метод «Process ▶ Batch ▶ Macro ...», описанный на том же веб-сайте, и, похоже, это не проблема.Однако проблема заключается в том, что я хотел бы иметь возможность просто отправлять сценарий, который я пишу, своим товарищам по группе и без необходимости что-либо объяснять им, чтобы они могли запускать код самостоятельно, опять же без открывающихся изображений, поскольку это можетбыть проблематичным, когда есть несколько сотен изображений.

Это код, который у меня есть до сих пор.Все, что он должен сейчас сделать, это создать на изображении группу квадратов, а затем выполнить измерения в% области изображения и затем отобразить результаты.

/*
 * Macro template to process multiple images in a folder
 */

requires("1.33s");
setBatchMode(true);
#@ File (label = "Input directory", style = "directory") input
#@ File (label = "Output directory", style = "directory") output
#@ String (label = "File suffix", value = ".tif") suffix


// See also Process_Folder.py for a version of this code
// in the Python scripting language.

processFolder(input);

// function to scan folders/subfolders/files to find files with correct suffix
function processFolder(input) {
    list = getFileList(input);
    list = Array.sort(list);
    for (i = 0; i < list.length; i++) {
        if(File.isDirectory(input + File.separator + list[i]))
            processFolder(input + File.separator + list[i]);
        if(endsWith(list[i], suffix))
            processFile(input, output, list[i]);
    }
}

function processFile(input, output, file) {
    // Do the processing here by adding your own code.
    // Leave the print statements until things work, then remove them.

    run("ROI Manager...");
    roiManager("Show All");
    setTool("rectangle");
    for (i = 1; i < getWidth/2; i++) {
        makeRectangle(getWidth/2 - i, getHeight/2 - i, 2*i + 1, 2*i + 1);
        roiManager("Add");
    }
    run("Set Measurements...", "area area_fraction redirect=None decimal=3");
    roiManager("multi-measure measure_all one append");
    run("Summarize");
}

Прямо сейчас все, что я пытаюсьВыясните, как исправить ошибку, связанную с неоткрытыми изображениями, функция самого кода - лишь грубый набросок.Я пытался использовать setBatchMode ("true"), но это не сработало.Если у кого-то есть какие-либо идеи или предложения, я буду очень признателен за любую помощь!

...