【问题标题】:Get ImagePlus objects from multiple ROIs using ImageJ使用 ImageJ 从多个 ROI 获取 ImagePlus 对象
【发布时间】:2018-05-30 18:59:07
【问题描述】:

我正在使用 ImageJ 的 Java API,需要根据多个选定的 ROI(感兴趣区域)计算一些数据。

首先,我使用

获取当前 ROI 管理器的实例
RoiManager roiMng = RoiManager.getInstance();

然后,我使用 Roi[] rois = roiMng.getRoisAsArray(); 获得经理中的所有 ROI。

从这里,我需要获取 ROI 中的图像并从中获取一些数据。但是,我似乎只有在 ROI 上调用 getImage() 时才会返回 Null。

做类似的事情,

Roi roi = rois[0];
ImagePlus foo = roi.getImage();
int height = foo.getHeight();

foo.getHeight() 行给我“java.lang.NullPointerException”。

有人对这里可能发生的事情有任何想法吗?

谢谢!

【问题讨论】:

    标签: java image-processing computer-vision imagej roi


    【解决方案1】:

    您需要在 ImagePlus 上设置 roi。然后你可以通过调用duplicate()方法复制由活动ROI定义的图像部分。

    ImagePlus imp = IJ.getImage(); // get the (current) image from the active/selected window
    ...
    imp.setRoi(rois[0]);
    ImagePlus roiImp = imp.duplicate();
    

    这样您将获得由 ROI 边界框定义的图像。如果设置了 ROI,则复制方法会创建整个图像或 roi 图像的副本。

    如果您不需要像素数据,但需要获取基于 ROI 的统计信息,您可能需要查看https://imagej.nih.gov/ij/developer/api/ij/ImagePlus.html#getStatistics--https://imagej.nih.gov/ij/developer/api/ij/gui/Roi.html#getStatistics--

    希望对你有帮助

    菲利克斯

    【讨论】:

    • 原来检索 ImagePlus 对象是多余的,我需要的只是 getStatistics。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2014-12-02
    • 1970-01-01
    相关资源
    最近更新 更多