ImageJ:导出多个图像的直方图列表

时间:2017-08-07 14:06:40

标签: imagej imagej-macro

经过几个小时的尝试和搜索相关主题后,我没有进一步了解。我正在尝试创建一个小的ImageJ脚本来分割图片的通道,保存带有增强对比度的.tif版本(此部分可用)并创建直方图并将其值保存为.csv (此部分不起作用,它不会保存任何东西)。 我不知道为什么它不起作用所以这是我的整个代码。

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, filename) {
    print("Processing: " + input + filename);
    open(input + filename);
    run("Split Channels");
    selectWindow(filename+" (blue)");
    close();
    selectWindow(filename+" (green)");
    close();
    selectWindow(filename+" (red)");
    run("Histogram");
    getHistogram(values, counts, 256);
    saveAs("Results", output + "Histogram of " + filename + ".csv");
    close();
    saveAs("TIFF", output+ "processed_" + filename);
    selectWindow("processed_" + filename);
    close();

}

我很欣赏每一个输入。干杯!

1 个答案:

答案 0 :(得分:0)

不确定您是否可以使用IJ宏语言将其另存为csv文件。但是这里有一些代码可以做同样的事情但是把它保存为txt文件(这个例子只接受255的值)

getStatistics(mean, min, max, std, histogram); 
white=histogram[255];
// list2 is the list of images in a for loop - adds image name to results
print(white,",", list2[j]+" smi31");

selectWindow("Log");
saveAs("txt", file1+"Result");

希望这有用: - )