如何禁用 ImageJ 中的对话框?

How can I disable a dialog in ImageJ?

我经常使用 ImageJ 来查看由位于一个文件夹中的许多单个图像组成的图像堆栈。我只需将相应的文件夹拖放到 ImageJ GUI 中,它就会创建一个可滚动的可视化效果,这非常方便。它可能会更方便,因为每次我这样做时,都会出现一个对话框,询问我是否要将文件夹中的所有图像作为堆栈打开。是否可以将其默认为 "Yes"?我需要更改源代码并自己编译吗?如果是这样,我可以从哪里开始寻找?

建议向 Imagej Wayne rasband 的作者提出功能请求,例如,在 Github 存储库:

https://github.com/imagej/imagej1

或者您可以编写一个小宏(使用带有菜单操作的宏记录器!),它也可以安装在 ImageJ 中。类似于:

run("Image Sequence...", "open=C:\images\ sort");

这里是宏文档:

https://imagej.nih.gov/ij/developer/macro/macros.html

https://imagej.nih.gov/ij/docs/guide/146-14.html

要在源代码中禁用对话框:找到源文件ij>plugin>DragAndDrop.java。从其 openDirectory 方法中,删除与对话框相关的行并将布尔值分配给 convertToRGBvirtualStack,这两个值通常由现在不存在的对话框 [=23= 中的复选框定义].代码现在应该如下所示:

    private void openDirectory(File f, String path) {
        if (path==null) return;
        if (!(path.endsWith(File.separator)||path.endsWith("/")))
            path += File.separator;
        String[] names = f.list();
        names = (new FolderOpener()).trimFileList(names);
        if (names==null)
            return;
        convertToRGB = false;
        virtualStack = false;
        String options  = " sort";
        if (convertToRGB) options += " convert_to_rgb";
        if (virtualStack) options += " use";
        IJ.run("Image Sequence...", "open=[" + path + "]"+options);
        DirectoryChooser.setDefaultDirectory(path);
        IJ.register(DragAndDrop.class);
    }

我用 ImageJ 1.51p 做了这个。源码可以下载here。进行这些更改后,只需 运行 build.xml ant 脚本。

请注意,编写宏可能会提供一种更简洁、更便携的方式来实现此目的——请参阅 Marcel 的回答以进一步阅读。