【问题标题】:ImageJ macro make new folder and save output in new folderImageJ 宏创建新文件夹并将输出保存在新文件夹中
【发布时间】:2016-03-22 01:55:54
【问题描述】:

我修改了在 ImageJ 留言板上找到的以下宏以批量拆分通道,创建一个名为“OneChannel”的新文件夹并将输出保存在新文件夹中。代码按预期工作:它创建新文件夹,拆分通道,并以新名称保存它们。唯一的问题是它将新文件保存在与原始文件相同的文件夹中,之后我必须手动将它们拖到新创建的文件夹中。我试过弄乱这个,但我不能让它工作。任何输入将不胜感激,我对 Java 很陌生。

dir=getDirectory("Choose a Directory"); 
print(dir); 
splitDir= dir + "OneChannel"; 
print(splitDir); 
File.makeDirectory(splitDir); 
list = getFileList(dir); 

for (i=0; i<list.length; i++) { 
     if (endsWith(list[i], ".tif")){ 
               print(i + ": " + dir+list[i]); 
             open(dir+list[i]); 
             imgName=getTitle(); 
         baseNameEnd=indexOf(imgName, ".tif"); 
         baseName=substring(imgName, 0, baseNameEnd);
         run("Split Channels"); 
         selectWindow(imgName + " (blue)"); 
         close(); 
         selectWindow(imgName + " (green)"); 
         saveAs("Tiff",  splitDir + baseName +  "-AnkG.tif"); 
         close(); 
         selectWindow(imgName + " (red)");
         run("Close All"); 
     } else {
     write("One Channel Conversion is Complete");
     }
} 

【问题讨论】:

标签: imagej imagej-macro


【解决方案1】:

我真的想通了。在第 3 行中,我需要输入“/OneChannel/”。一旦我这样做,它就可以正常工作。我想我之前没有指定真实的文件路径,但现在下面的工作正常。

dir=getDirectory("Choose a Directory"); 
print(dir); 
splitDir= dir + "/OneChannel/"; // This was my error, I left out "//" surrounding OneChannel
print(splitDir); 
File.makeDirectory(splitDir); 
list = getFileList(dir); 

for (i=0; i<list.length; i++) { 
     if (endsWith(list[i], ".tif")){ 
               print(i + ": " + dir+list[i]); 
             open(dir+list[i]); 
             imgName=getTitle(); 
         baseNameEnd=indexOf(imgName, ".tif"); 
         baseName=substring(imgName, 0, baseNameEnd);
         run("Split Channels"); 
         selectWindow(imgName + " (blue)"); 
         close(); 
         selectWindow(imgName + " (green)"); 
         saveAs("Tiff",  splitDir + baseName "-AnkG.tif"); 
         close(); 
         selectWindow(imgName + " (red)");
         run("Close All"); 
     } else {
     write("One Channel Conversion is Complete");
     }
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多