java - "Make Binary"在单个图像和堆栈之间切换背景

标签 java plugins imagej

我正在 imagej 中构建一个插件,它将在进行分析之前对图像进行一些预处理。我希望这个插件能够在单个图像和堆栈上运行。这是到目前为止我的插件代码的示例:

import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.*;



public class My_Analysis implements PlugIn {

    public void run(String arg) {

        ImagePlus imp = IJ.getImage();
        IJ.run(imp, "Find Edges", "stack");
        Prefs.blackBackground = true;
        IJ.run(imp, "Make Binary", "stack");
        IJ.run(imp, "Erode", "stack");
    }
}

之后还有更多,但只是引用分析,我认为不相关。另外,我在代码前面有一个 GenericDialog,但也不认为它是相关的,并且不想让示例陷入困境。当然,如果有人认为有必要,我可以将其全部包含在内。

我的问题是,这在单个图像上效果很好,但“制作二进制”会反转堆栈上的黑/白。我打赌我可以简单地将 Prefs.blackBackground 切换为 false 即可修复它,但它无法在单个图像上工作。

另一条信息是,如果我将“堆栈”从Make Binary行中取出,它将弹出一个对话框,提示我选择几个选项,其中之一是背景是否为黑色。如果我选择此选项,它会正确执行“生成二进制”,但不会将其应用于整个堆栈或其他内容,因为我最终得到的是仅分析第一个图像和堆栈中的其余图像很奇怪。

任何帮助将不胜感激。非常感谢。

最佳答案

我同意 ImageJ1.x 的这种行为是不一致的。我不确定这是否是有意为之,但请随时在 ImageJ forum 上报告。或mailing list ,所以它可能会被修复。

<小时/>

Another piece of information is that if I take the "stack" out of the Make Binary line, it will pop open a dialog box that prompts me to select several options, one of which is whether the background is black.

这确实是此处的可行解决方案的路径:只需添加关键字 black 即可在脚本或宏中重现行为,例如此 Groovy 脚本在单个图像和堆栈上运行相同:

import ij.IJ;
import ij.ImagePlus;
import ij.Prefs;

ImagePlus imp = IJ.getImage();
IJ.run(imp, "Find Edges", "stack");
Prefs.blackBackground = true;
IJ.run(imp, "Make Binary", "stack black"); // this line changed
IJ.run(imp, "Erode", "stack");

您可以使用 Macro recorder 获取所需的关键字并在堆栈上运行Process > Binary > Make binary

关于java - "Make Binary"在单个图像和堆栈之间切换背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398731/

相关文章:

java - 在 Eclipse IDE 中展开折叠的代码

java - PowerMock,模拟一个静态方法,然后在所有其他静态上调用真实方法

java - 安装 Google App Engine 插件后 Eclipse 3.5 缺少新的 Web 应用程序选项

imagej - 自动释放ImageJ/Fiji中未使用的内存

java - 从字节矩阵创建一组图像文件

java - 如何通过java程序监控安装过程?

java - 出现错误 "class file for org.openqa.selenium.remote.RemoteWebDriver not found"

python - 如何使用 setuptools 注册多个 Pluggy 插件

C++:如何获得解耦的多态行为