Posted by
Rasband, Wayne (NIH/NIMH) [E] on
Nov 19, 2013; 4:52am
URL: http://imagej.273.s1.nabble.com/Overlay-and-ROI-tp5005591p5005595.html
On Nov 18, 2013, at 4:15 PM, Philippe GENDRE wrote:
> Dear List,
>
> I need to retrieve the pixels of several ROIs in the same image and to
> visualize these ROIs.
>
> To do that, inside a loop, I draw several rectangles corresponding to each
> ROI (using the rectangular selection tool for example) and I use the
> following lines to store the corresponding ROI and to visualize each of
> them on the image which is a live stream :
>
> roi[i]=img.getRoi();
> IJ.run("Add Selection...", "");
>
> My question is how to change (to translate) the ROIs *and* their
> corresponding overlay ?
You can use the Overlay.translate(x,y) method to translate the overlay. An overlay is essentially an array of ROIs so there is no need to maintain a second array. Here is JavaScript code that creates an overlay consisting of three rectangles, translates the overlay and then activates, one at a time, each of the three rectangles.
-wayne
imp = IJ.createImage("Untitled", "8-bit black", 500, 500, 1);
overlay = new Overlay();
overlay.add(new Roi(50, 50, 120, 120));
overlay.add(new Roi(200, 150, 120, 120));
overlay.add(new Roi(300, 300, 140, 120));
imp.setOverlay(overlay);
imp.show();
IJ.wait(2000);
overlay.translate(50, 50);
imp.draw();
IJ.wait(1000);
rois = overlay.toArray();
for (i=0; i<rois.length; i++) {
imp.setRoi(rois[i]);
IJ.wait(1000);
}
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html