3

我需要运行宏,但我不想显示图像。如果我不调用 imp.show(),ImageJ 将打印到控制台没有打开的图像。那么如何在不显示图像的情况下运行宏呢?提前致谢。

public class MyPlugin implements PlugIn {

public static void MyPlugin(String path) {
    System.setProperty("plugins.dir", "libraries/plugins");
    System.setProperty("macros.dir", "libraries/macros");
    Opener opener = new Opener();
    ImagePlus imp = opener.openImage(path);
    imp.show();
    IJ.run(imp, "Skeletonize", "");
    runMacroFile("libraries/macros/FindJunctions", "");
    imp.close(); 
}
4

2 回答 2

3
  • 如果您通过将文件放入任何子文件夹(例如,请参阅ImageJ 文档)使宏成为ImageJ 命令,您应该能够运行:plugins/plugins/macros/Find_Junctions.ijm

    IJ.run(imp, "Find Junctions", "");

    imp您当前的图像在哪里。但是,这不会阻止宏中的命令显示图像,除非宏本身设置setBatchMode(true).

  • 避免显示图像的一种更安全的方法是完全避免调用宏,并将宏的所有命令包含到您的插件中。您可以通过在插件模式下运行宏记录器来获得所需的命令语法。

由于您的代码示例无法编译,并且您没有提供有关要调用的宏的任何详细信息,因此我无法为您提供更多帮助。

于 2013-05-07T19:37:50.327 回答
3

添加setBatchMode(true);到宏的开头。请参阅内置宏函数

于 2015-03-10T18:49:43.800 回答