我在斐济写了一个宏来对特定文件夹中的所有图像执行一组操作。但我遇到了麻烦,无法克服一个问题。当我运行宏时,我收到一条错误消息“没有打开图像”。这是什么意思? (输入文件夹中的图像为.tif类型)
这是宏:
input = "C:"+File.separator+"Winter Quarter slides"+File.separator+"CTIA"+File.separator+"Project"+File.separator+"Original Image data"+File.separator+"Input Images"+File.separator;
output = "C:"+File.separator+"Winter Quarter slides"+File.separator+"CTIA"+File.separator+"Project"+File.separator+"Original Image data"+File.separator+"Output Images"+File.separator;
setBatchMode(true);
list=getFileList(input);
for(i=0; i<list.length; i++)
action(input,output,list[i]);
setBatchMode(false);
function action(input,output,filename) {
open(input+filename);
run("16-bit");
run("Gaussian Blur...", "sigma=3");
setAutoThreshold("Otsu");
//run("Threshold...");
setAutoThreshold("Otsu");
setOption("BlackBackground", false);
run("Convert to Mask");
run("Close");
run("Watershed");
saveAs("Tiff", output+filename);
close();
}
close();
有人可以尽快帮助我吗? 谢谢!
答案 0 :(得分:0)
我没有使用过宏语言,但是在使用Java开发时我看到了这个错误。某些插件需要显示图像。
如果在open(input+filename);
之后图像没有显示,那么您需要运行一个show功能来显示图像。
你做
run("Close");
run("Watershed");
saveAs("Tiff", output+filename);
因此,您关闭图像,然后尝试对图像做一些会产生错误的图像。
答案 1 :(得分:0)
导致此错误的另一件事是输入目录中的非图像文件。循环遍历文件夹中的所有内容并将其视为图像。如果存在例如文本文件,则open(input+filename)
的结果将不是打开的图像。
答案 2 :(得分:0)
当打开多个窗口时,宏命令需要定义要处理的窗口。
在我的微处理器中使用; selectWindow( “imagename”);在命令之前。这应该可以解决问题。