Posted by
CARL Philippe (LBP) on
May 13, 2019; 3:55pm
URL: http://imagej.273.s1.nabble.com/Before-or-after-ImageProcessor-setRoi-calculations-tp5022183.html
Dear all,
Under the following link (code as well copied below):
http://punias.free.fr/ImageJ/My_Plugin.javaI perform Measurements.AREA and Measurements.MEAN calculations before and
after applying a ImageProcessor.setRoi method on both a rectangular and
round PolygonRoi.
And as the obtained results are similar for the rectangular roi, they quite
differ for the round one.
Is this a bug or am I doing something wrong within my calculations?
I thank you very much for your lightings on this.
My best regards,
Philippe
import ij.IJ;
import ij.ImagePlus;
import ij.measure.Measurements;
import ij.plugin.frame.RoiManager;
import ij.plugin.PlugIn;
import ij.gui.PolygonRoi;
import ij.gui.Roi;
import ij.process.ImageProcessor;
import ij.process.ImageStatistics;
public class My_Plugin implements PlugIn {
ImageStatistics stats;
Roi roi;
float[] rectangleX = {25.30f, 126.93f, 126.93f, 25.30f};
float[] rectangleY = {29.43f, 29.43f, 65.28f, 65.28f};
float[] roundX = {128.00f, 126.93f, 125.86f, 124.80f,
123.75f, 122.72f, 121.70f, 120.72f, 119.76f, 118.84f, 117.95f, 117.10f,
116.29f, 115.53f, 114.82f, 114.17f, 113.56f, 113.01f, 112.53f, 112.10f,
111.74f, 111.44f, 111.20f, 111.03f, 110.93f, 110.90f, 110.93f, 111.03f,
111.20f, 111.44f, 111.74f, 112.10f, 112.53f, 113.01f, 113.56f, 114.17f,
114.82f, 115.53f, 116.29f, 117.10f, 117.95f, 118.84f, 119.76f, 120.72f,
121.70f, 122.72f, 123.75f, 124.80f, 125.86f, 126.93f, 128.00f, 129.07f,
130.14f, 131.20f, 132.25f, 133.28f, 134.30f, 135.28f, 136.24f, 137.16f,
138.05f, 138.90f, 139.71f, 140.47f, 141.18f, 141.83f, 142.44f, 142.99f,
143.47f, 143.90f, 144.26f, 144.56f, 144.80f, 144.97f, 145.07f, 145.10f,
145.07f, 144.97f, 144.80f, 144.56f, 144.26f, 143.90f, 143.47f, 142.99f,
142.44f, 141.83f, 141.18f, 140.47f, 139.71f, 138.90f, 138.05f, 137.16f,
136.24f, 135.28f, 134.30f, 133.28f, 132.25f, 131.20f, 130.14f, 129.07f};
float[] roundY = {144.10f, 144.07f, 143.97f, 143.80f,
143.56f, 143.26f, 142.90f, 142.47f, 141.99f, 141.44f, 140.83f, 140.18f,
139.47f, 138.71f, 137.90f, 137.05f, 136.16f, 135.24f, 134.28f, 133.30f,
132.28f, 131.25f, 130.20f, 129.14f, 128.07f, 127.00f, 125.93f, 124.86f,
123.80f, 122.75f, 121.72f, 120.70f, 119.72f, 118.76f, 117.84f, 116.95f,
116.10f, 115.29f, 114.53f, 113.82f, 113.17f, 112.56f, 112.01f, 111.53f,
111.10f, 110.74f, 110.44f, 110.20f, 110.03f, 109.93f, 109.90f, 109.93f,
110.03f, 110.20f, 110.44f, 110.74f, 111.10f, 111.53f, 112.01f, 112.56f,
113.17f, 113.82f, 114.53f, 115.29f, 116.10f, 116.95f, 117.84f, 118.76f,
119.72f, 120.70f, 121.72f, 122.75f, 123.80f, 124.86f, 125.93f, 127.00f,
128.07f, 129.14f, 130.20f, 131.25f, 132.28f, 133.30f, 134.28f, 135.24f,
136.16f, 137.05f, 137.90f, 138.71f, 139.47f, 140.18f, 140.83f, 141.44f,
141.99f, 142.47f, 142.90f, 143.26f, 143.56f, 143.80f, 143.97f, 144.07f};
public void run(String arg) {
RoiManager rm = RoiManager.getInstance();
if (rm==null) rm = new RoiManager();
ImagePlus imp =
IJ.openImage("
http://wsr.imagej.net/images/blobs.gif");
roi = new PolygonRoi(rectangleX, rectangleY,
rectangleX.length, Roi.POLYGON);
roi.setName("rectangular");
rm.addRoi(roi);
roi = new PolygonRoi(roundX, roundY, roundX.length,
Roi.POLYGON);
roi.setName("round");
rm.addRoi(roi);
imp.show();
ImageProcessor ip = imp.getProcessor();
rm.select(imp, 0);
stats = ImageStatistics.getStatistics(ip , Measurements.AREA
+ Measurements.MEAN, null);
IJ.log("rectangular roi before ImageProcessor.setRoi - area
= " + stats.area + " mean = " + stats.mean);
ip.setRoi(imp.getRoi());
stats = ImageStatistics.getStatistics(ip , Measurements.AREA
+ Measurements.MEAN, null);
IJ.log("rectangular roi after ImageProcessor.setRoi -
area = " + stats.area + " mean = " + stats.mean);
rm.select(imp, 1);
stats = ImageStatistics.getStatistics(ip , Measurements.AREA
+ Measurements.MEAN, null);
IJ.log("round roi before ImageProcessor.setRoi -
area = " + stats.area + " mean = " + stats.mean);
ip.setRoi(imp.getRoi());
stats = ImageStatistics.getStatistics(ip , Measurements.AREA
+ Measurements.MEAN, null);
IJ.log("round roi after ImageProcessor.setRoi -
area = " + stats.area + " mean = " + stats.mean);
}
}
Philippe CARL
Laboratoire de Bioimagerie et Pathologies
UMR 7021 CNRS - Université de Strasbourg
Faculté de Pharmacie
74 route du Rhin
67401 ILLKIRCH
Tel : +33(0)3 68 85 41 84
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html