没有图像打开 - 斐济/ ImageJ宏语言

时间:2013-04-10 17:33:18

标签: macros imagej

我在斐济写了一个宏来对特定文件夹中的所有图像执行一组操作。但我遇到了麻烦,无法克服一个问题。当我运行宏时,我收到一条错误消息“没有打开图像”。这是什么意思? (输入文件夹中的图像为.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();

有人可以尽快帮助我吗? 谢谢!

3 个答案:

答案 0 :(得分:0)

我没有使用过宏语言,但是在使用Java开发时我看到了这个错误。某些插件需要显示图像。

如果在open(input+filename);之后图像没有显示,那么您需要运行一个show功能来显示图像。

你做

run("Close");
run("Watershed");
saveAs("Tiff", output+filename);

因此,您关闭图像,然后尝试对图像做一些会产生错误的图像。

答案 1 :(得分:0)

导致此错误的另一件事是输入目录中的非图像文件。循环遍历文件夹中的所有内容并将其视为图像。如果存在例如文本文件,则open(input+filename)的结果将不是打开的图像。

答案 2 :(得分:0)

当打开多个窗口时,宏命令需要定义要处理的窗口。

在我的微处理器中使用; selectWindow( “imagename”);在命令之前。这应该可以解决问题。