使用ImageJ从多个ROI获取ImagePlus对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ImageJ从多个ROI获取ImagePlus对象相关的知识,希望对你有一定的参考价值。
我正在使用ImageJ的Java API,需要根据多个选定的ROI(感兴趣的区域)计算一些数据。
首先,我使用了获得当前ROI Manager的实例
RoiManager roiMng = RoiManager.getInstance();
然后,我通过使用Roi[] rois = roiMng.getRoisAsArray();
获得经理的所有投资回报率。
从这里开始,我需要在ROI中获取图像并从中获取一些数据。但是,在ROI上调用getImage()时,我似乎只能得到Null。
做点什么,
Roi roi = rois[0];
ImagePlus foo = roi.getImage();
int height = foo.getHeight();
在foo.getHeight()
行给我'java.lang.NullPointerException'。
任何人都对这里可能发生的事情有任何想法?
谢谢!
答案
你需要在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--
希望有所帮助
费利克斯
以上是关于使用ImageJ从多个ROI获取ImagePlus对象的主要内容,如果未能解决你的问题,请参考以下文章