Java ImageJ静默模式-不打开图像的处理

Java ImageJ静默模式-不打开图像的处理,java,plugins,imagej,Java,Plugins,Imagej,我需要运行宏,但我不想显示图像。如果我不调用imp.show,ImageJ将打印到控制台,因为没有打开任何图像。那么,如何在不显示图像的情况下运行宏?提前谢谢 public class MyPlugin implements PlugIn { public static void MyPlugin(String path) { System.setProperty("plugins.dir", "libraries/plugins"); System.setProperty("

我需要运行宏,但我不想显示图像。如果我不调用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(); 
}
如果通过将文件放入插件/plugins/macros/Find_Junctions.ijm的任何子文件夹,使宏成为ImageJ命令,请参阅,您应该能够运行:

IJ.runimp,找到交叉点

您当前的图像在哪里。但是,这不会阻止宏中的命令显示图像,除非宏本身将SetBatchMode设置为True

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

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

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

IJ.runimp,找到交叉点

您当前的图像在哪里。但是,这不会阻止宏中的命令显示图像,除非宏本身将SetBatchMode设置为True

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


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

Add setBatchModetrue;到宏的开头。请参阅。

添加setBatchModetrue;到宏的开头。请参阅。

宏文件库/宏/FindFunctions的内容是什么?考虑一下你的问题,它会引起更多的用户和专家的注意。你的宏文件库/宏/查找连接的内容是什么?考虑一下你的问题,它会引起更多的用户和专家的注意。谢谢你的回复。我尝试将文件放入plugins/并将命令更改为IJ.runimp,Find Junctions,},但它仍然打印:没有打开的图像。宏文件来自这个页面,我重命名了它,在宏的顶部我写了findTheNodes;并从理论上进行了分析;因为我需要这两个功能。作为ImageJ工具集,Gilles Carpentier的血管生成分析仪严重依赖于用户界面的存在,因此需要打开并显示图像。恐怕实现您想要的功能的唯一方法是深入研究findTheNodes并分析FromaTree函数,并在Java中重新实现它们的命令。但是,由于在您自己的代码中,您已经确保在宏之前运行Skeletonize的是一个二进制骨架,因此您可以省略一些处理检查前提条件的宏代码…感谢您的回复。我尝试将文件放入plugins/并将命令更改为IJ.runimp,Find Junctions,},但它仍然打印:没有打开的图像。宏文件来自这个页面,我重命名了它,在宏的顶部我写了findTheNodes;并从理论上进行了分析;因为我需要这两个功能。作为ImageJ工具集,Gilles Carpentier的血管生成分析仪严重依赖于用户界面的存在,因此需要打开并显示图像。恐怕实现您想要的功能的唯一方法是深入研究findTheNodes并分析FromaTree函数,并在Java中重新实现它们的命令。但是,由于在您自己的代码中,您已经确保在宏之前运行Skeletonize的是一个二进制骨架,因此可以省略一些处理检查前提条件的宏代码。。。