我正在使用ImageJ的Java API,需要根据多个选定的ROI(感兴趣的区域)计算一些数据。
首先,我使用
获取当前ROI Manager的实例$result = $client->send($result);
然后,我使用RoiManager roiMng = RoiManager.getInstance();
获得管理员的所有投资回报率。
从这里开始,我需要在ROI中获取图像并从中获取一些数据。但是,在ROI上调用getImage()时,我似乎只能获得Null。
做类似的事情,
Roi[] rois = roiMng.getRoisAsArray();
在Roi roi = rois[0];
ImagePlus foo = roi.getImage();
int height = foo.getHeight();
行给我'java.lang.NullPointerException'。
任何人都对这里可能发生的事情有任何想法?
谢谢!
答案 0 :(得分: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-image。
如果您不需要像素数据,但需要获得基于投资回报率的统计信息,则可能需要查看https://imagej.nih.gov/ij/developer/api/ij/ImagePlus.html#getStatistics-- 和 https://imagej.nih.gov/ij/developer/api/ij/gui/Roi.html#getStatistics--
希望有所帮助
菲利克斯