Macros ImageJ宏在原始图像上放置粒子分析轮廓时出错

Macros ImageJ宏在原始图像上放置粒子分析轮廓时出错,macros,imagej,fiji,Macros,Imagej,Fiji,我正在尝试编写一个imageJ宏,它将 1打开图像并将其拆分为两个通道 2对每个图像执行粒子分析并保存测量值 3保存覆盖粒子轮廓的原始图像 到目前为止,我已经意识到我需要首先复制原始图像,以便以后可以将ROI保存在该图像之上。但是,我目前无法确定如何重命名此复制图像,以便稍后选择它进行展平: dir=getDirectory("Choose a Directory"); print(dir); greenDir=dir + "/Green/"; blueDir=dir + "/Blue/"

我正在尝试编写一个imageJ宏,它将

1打开图像并将其拆分为两个通道 2对每个图像执行粒子分析并保存测量值 3保存覆盖粒子轮廓的原始图像

到目前为止,我已经意识到我需要首先复制原始图像,以便以后可以将ROI保存在该图像之上。但是,我目前无法确定如何重命名此复制图像,以便稍后选择它进行展平:

dir=getDirectory("Choose a Directory"); 
print(dir); 
greenDir=dir + "/Green/"; 
blueDir=dir + "/Blue/";
print(greenDir); 
print(blueDir); 
File.makeDirectory(greenDir); 
File.makeDirectory(blueDir); 
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("C1-" + imgName);  
     run("Duplicate...", "title= imgName + "original");
     selectWindow("C1-" + imgName); 
     setAutoThreshold("Default dark");
     //run("Threshold...");
     //setThreshold(1, 255);
     run("Convert to Mask");
     run("Analyze Particles...", "size=60-Infinity pixel show=Outlines display exclude   summarize   add");
     selectWindow(imgName + "original"); 
     roiManager("Show All without labels");
     run("Flatten");
     saveAs("Tiff", greenDir + baseName + "green.tif"); 
         close(); 

如果这是一件非常简单的事情,请提前道歉,这对我来说都是非常新鲜的事情,我从谷歌上学到了很多

使用宏录制器,ImageJ中的每个GUI操作都可以用不同的脚本语言录制,这是一个很大的帮助,请参见:


重命名的宏命令很简单:renameYourImageTitle

我昨晚修改了我的代码,现在它可以工作了:

dir=getDirectory("Choose a Directory"); 
print(dir); 
greenDir=dir + "/Green/"; 
blueDir=dir + "/Blue/";
print(greenDir); 
print(blueDir); 
File.makeDirectory(greenDir); 
File.makeDirectory(blueDir); 
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"); 
     roiManager("Reset"); 

         selectWindow("C1-" + imgName);  
     run("Duplicate...", "title=");
     saveAs("Tiff", greenDir + "originalgreen" + baseName); 
     selectWindow("C1-" + imgName); 
     setAutoThreshold("Default dark");
     //run("Threshold...");
     //setThreshold(1, 255);
     setOption("BlackBackground", false);
     run("Convert to Mask");
     run("Analyze Particles...", "size=60-Infinity pixel show=Outlines display exclude   summarize   add");
     selectWindow("originalgreen" + imgName); 
     roiManager("Show All with labels");
     run("Flatten");
     saveAs("Tiff", greenDir + baseName + "overlaygreen.tif"); 
         close(); 
     } 
} 

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");
     roiManager("Reset"); 


         selectWindow("C2-" + imgName); 
     run("Duplicate...", "title=");
     saveAs("Tiff", blueDir + "originalblue" + baseName);
     selectWindow("C2-" + imgName);
     //run("Threshold...");
     //setThreshold(23, 255);
     setOption("BlackBackground", false);
     run("Convert to Mask");
     run("Analyze Particles...", "size=60-Infinity pixel show=Outlines display exclude   summarize   add");
     selectWindow("originalblue" + imgName); 
     roiManager("Show All with labels");
     run("Flatten");
         saveAs("Tiff", blueDir + baseName + "overlayblue.tif"); 
         run("Close All"); 
     } 
}