Login  Register

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");

}