【问题标题】:ImageJ silent mode - process without opening imagesImageJ 静音模式 - 无需打开图像即可处理
【发布时间】:2013-05-07 10:41:15
【问题描述】:

我需要运行宏,但我不想显示图像。如果我不调用 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(); 
}

【问题讨论】:

  • 你的宏文件libraries/macros/FindJunctions的内容是什么?考虑向ImageJ mailing list 提出您的问题,它会得到比这里更多的 ImageJ 用户和专家的关注。

标签: java plugins imagej


【解决方案1】:
  • 如果您通过将文件放入plugins/ 的任何子文件夹(例如plugins/macros/Find_Junctions.ijm,请参阅ImageJ documentation)使您的宏成为ImageJ 命令,您应该能够运行:

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

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

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

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

【讨论】:

  • 感谢您的回复。我试图将文件放入 plugins/ 并将命令更改为 IJ.run(imp, "Find Junctions", ""},但它仍然打印:没有打开图像。宏文件来自此页面 image.bio.methods.free.fr/ImageJ/…我重命名了它,并在宏的顶部写了“findTheNodes();”和“analyzeFromATree();”,因为我需要这两个函数。
  • 作为 ImageJ 工具集,Gilles Carpentier 的 血管生成分析仪 严重依赖用户界面的存在,因此需要打开和显示图像。恐怕实现您想要的唯一方法是深入研究findTheNodes()analyseFromATree() 函数并在Java 中重新实现它们的命令。但是,由于在您自己的代码中,您已经确保存在二进制框架(您在宏之前运行 Skeletonize),您可以省略相当多的用于检查先决条件的宏代码...
【解决方案2】:

setBatchMode(true); 添加到宏的开头。见built-in macro functions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    相关资源
    最近更新 更多