我需要运行Macro,但我不想显示图像。如果我不调用imp.show(),ImageJ将打印到控制台没有打开图像。那么如何在不显示图像的情况下运行Macro?提前致谢。
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();
}
答案 0 :(得分:2)
如果您通过将文件放入plugins/
的任何子文件夹(例如plugins/macros/Find_Junctions.ijm
)来使宏成为 ImageJ命令,请参阅ImageJ documentation) ,你应该能够运行:
IJ.run(imp, "Find Junctions", "");
其中imp
是您当前的图片。但是,这不会阻止宏中的命令显示图像,除非宏本身设置setBatchMode(true)
。
避免显示图像的一种更安全的方法是避免调用宏,并将宏的所有命令都包含在插件中。您可以通过在插件模式下运行macro recorder来获取所需的命令语法。
由于您的代码示例无法编译,并且您没有提供有关您要调用的宏的任何详细信息,因此我无法帮助您。
答案 1 :(得分:2)
将setBatchMode(true);
添加到宏的开头。请参阅built-in macro functions。