Re: Extracting individual .tiffs from large number of ROIs
Posted by Nickwheeler on Feb 22, 2014; 3:29pm
URL: http://imagej.273.s1.nabble.com/Extracting-individual-tiffs-from-large-number-of-ROIs-tp5006620p5006631.html
Thanks Wayne! That looks like it'll give me the data I need.
Never done any Java programming before, how do I implement this javascript? I tried to put it into a plugin, but get 56 errors saying 'Cannot find symbol' when I compile and run.
This is the code I tried:
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import ij.plugin.*;
import ij.plugin.frame.*;
public class MultiROIhist_ implements PlugIn {
public void run(String arg) {
ImagePlus imp = IJ.getImage();
IJ.run(imp, "Invert", "");
IJ.wait(1000);
IJ.run(imp, "Invert", "");
}
imp = IJ.getImage();
ip = imp.getProcessor();
rm = RoiManager.getInstance();
rois = rm.getRoisAsArray();
rt = new ResultsTable();
for (i=0; i<rois.length; i++) {
ip.setRoi(rois[i]);
ip.setRGBWeights(1, 0, 0);
histogram = ip.getHistogram();
rt.incrementCounter();
rt.addValue("ROI", "R"+i);
for (j=0; j<256; j++)
rt.addValue("C"+j, histogram[j]);
ip.setRGBWeights(0, 1, 0);
histogram = ip.getHistogram();
rt.incrementCounter();
rt.addValue("ROI", "G"+i);
for (j=0; j<256; j++)
rt.addValue("C"+j, histogram[j]);
ip.setRGBWeights(0, 0, 1);
histogram = ip.getHistogram();
rt.incrementCounter();
rt.addValue("ROI", "B"+i);
for (j=0; j<256; j++)
rt.addValue("C"+j, histogram[j]);
}
rt.showRowNumbers(false);
rt.show("Results");
}