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

时间:2017-12-17 01:21:42

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

我正在使用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'。

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

谢谢!

1 个答案:

答案 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--

希望有所帮助

菲利克斯