Login  Register

Re: Duplicating Images With Symbols

Posted by Wayne Rasband on Nov 18, 2009; 8:04pm
URL: http://imagej.273.s1.nabble.com/Duplicating-Images-With-Symbols-tp3690407p3690408.html

 > If I write a macro that uses "setColor(255);drawOval(w/2,
 > h/2, 50,50);" to draw an oval into an image, then I can
 > duplicate the image (i.e. run("Duplicate ... ",... ) and
 > oval is in the duplicate. In Java, if I use
 >
 > Vector list = new Vector(); OvalRoi roi = new
 > OvalRoi(x,y,w,h); roi.setInstanceColor(Color.green);
 > list.addElement(roi);
 >
 > and then duplicate the resulting output image, the oval
 > doesn't show up in the duplicate. Is there a way to insert
 > an oval, or other symbols into an image in a Java program
 > and have them be "duplicatable" outside of the program?
 >
 > David Webster

You can duplicate what the macro code is doing using

     imp = IJ.getImage();
     ip = imp.getProcessor();
     ip.setColor(255);
     ip.drawOval(w/2, h/2, 50, 50);
     imp.updateAndDraw();

Or you can render an overlay and/or ROI onto the image using

    imp2 = imp.flatten();  // Image>Overlay>Flatten (1.43j or later)

which creates an RGB duplicate of the image with the overlay and any
ROI embedded in the pixel data.

-wayne