2

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

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

4

3 回答 3

1

当打开多个窗口时,宏命令需要定义要在哪个窗口上工作。

在我的 micros 中,我使用 ; 选择窗口(“图像名称”);在命令之前。这应该可以解决问题。

于 2013-04-23T13:50:22.530 回答
1

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

于 2013-04-11T08:44:40.320 回答
0

我没有使用宏语言,但在 Java 中开发时看到了该错误。某些插件要求显示图像。

如果之后图像未显示,open(input+filename);则需要运行 show 函数来显示图像。

你做

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

因此,您关闭图像,然后尝试对图像执行会产生该错误的操作。

于 2013-04-11T07:37:18.823 回答