gpt4 book ai didi

java - 使用 ImageJ 从多个 ROI 获取 ImagePlus 对象

转载 作者:行者123 更新时间:2023-12-02 11:51:27 26 4
gpt4 key购买 nike

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

首先,我使用

获取当前 ROI Manager 的实例
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”。

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

谢谢!

最佳答案

您需要在 ImagePlus 上设置 roi 。然后,您可以通过调用duplicate()方法来复制由 Activity 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--

希望有帮助

菲利克斯

关于java - 使用 ImageJ 从多个 ROI 获取 ImagePlus 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47851439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com