【问题标题】:"Make Binary" switches background between single image and stack“制作二进制”在单个图像和堆栈之间切换背景
【发布时间】:2015-12-21 15:06:47
【问题描述】:

我正在 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,但也认为它不相关,不想让示例陷入困境。当然,如果有人认为有必要,我可以全部包含在内。

我的问题是这在单个图像上效果很好,但是 Make Binary 会反转堆栈上的黑色/白色。我敢打赌我可以简单地将 Prefs.blackBackground 切换为 false 并且可以修复它,但是它不适用于单个图像。

另一条信息是,如果我从 Make Binary 行中取出“堆栈”,它会弹出一个对话框,提示我选择几个选项,其中一个是背景是否为黑色。如果我确实选择了这个选项,它会正确执行 Make Binary,但不会将其应用于整个堆栈或其他东西,因为我最终只分析第一个图像和堆栈中的其余图像看起来很奇怪。

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

【问题讨论】:

    标签: java plugins imagej


    【解决方案1】:

    我同意 ImageJ1.x 的这种行为是不一致的。我不确定它是否有意,但请随时在ImageJ forummailing list 上报告它,因此它可能会得到修复。


    另一条信息是,如果我将“堆栈”从 Make Binary line,它会弹出一个对话框,提示我 选择几个选项,其中一个是背景是否是 黑色。

    这确实是一个可行的解决方案的路径:只需添加关键字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 来获得所需的关键字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 2015-01-28
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多