0

经过数小时的尝试和搜索相关主题后,我没有进一步了解。我正在尝试创建一个小的 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();

}

我感谢每一个输入。干杯!

4

1 回答 1

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");

希望这会有所帮助:-)

于 2017-08-08T20:25:54.930 回答