2017-08-07 314 views
0

经过数小时的尝试和搜索相关主题,我没有更进一步。我正在尝试创建一个小型ImageJ脚本,用于分割图片的通道,并保存为具有增强对比度的.tif版本(本部分工作)并创建直方图并将其值保存为.csv(此部分不起作用,它不保存任何东西)。 我不知道为什么它不起作用,所以这是我的整个代码。ImageJ:导出多个图像的柱状图列表

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

} 

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

回答

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

希望这有助于:-)