Login  Register

Re: Changing the line width of a freeline roi for displaying in a non-destrutive graphics overlay

Posted by Fernando Sales on Mar 31, 2008; 3:15pm
URL: http://imagej.273.s1.nabble.com/Changing-the-line-width-of-a-freeline-roi-for-displaying-in-a-non-destrutive-graphics-overlay-tp3696734p3696736.html

Michael,

i created a new methos addElement where the second argument is a Roi instead
of a Shape. I forgot to put this in my last msg.
The methods are:

    void addElement(Vector list, Roi roi, Color color, int lineWidth) {
        roi.setInstanceColor(color);
        roi.setLineWidth(lineWidth);
        System.out.println("ROI Properties: "+roi.toString());
        list.addElement(roi);
    }

    void addElement(Vector list, Shape shape, Color color, int lineWidth) {
        Roi roi = new ShapeRoi(shape);
        roi.setInstanceColor(color);
        roi.setLineWidth(lineWidth);
        list.addElement(roi);
    }

I guess that the problem was not this related by you, Michael.
By the way, thanks.

But i still have the same doubt.
Somebody knows what is happening?

Thanks in advance,
Fernando

On Mon, Mar 31, 2008 at 11:52 AM, Michael Schmid <[hidden email]>
wrote:

> Hi Fernando,
>
> to understand the problem, you should have a look at the
> addElement method in your code.
> I guess that you have copied it from
> http://rsb.info.nih.gov/ij/plugins/download/
> MultiColor_Graphic_Overlay.java
>
>         void addElement(Vector list, Shape shape, Color color, int
> lineWidth) {
>                Roi roi = new ShapeRoi(shape);
>                roi.setInstanceColor(color);
>                roi.setLineWidth(lineWidth);
>                list.addElement(roi);
>        }
>
> It requires the second argument to have class Shape.
>
> Michael
> ________________________________________________________________
>
> On 31 Mar 2008, at 16:42, Fernando Sales wrote:
>
> > Hi,
> >
> > I've been problems to change the line width of a freeline roi for
> > displaying
> > it in a non-destrutive graphics overlay. I've made some tests based
> > on the
> > example below.
> > http://rsb.info.nih.gov/ij/plugins/download/
> > MultiColor_Graphic_Overlay.java
> >
> > There is a piece of the code.
> >
> > // Initalization
> > ImagePlus imp = WindowManager.getCurrentImage();
> > ImageCanvas ic = imp.getCanvas();
> > Vector list = new Vector();
> > int select = 4; // Parameter for select the ROi of interest
> > IJ.run("Add to Manager ");
> > IJ.runMacro("roiManager(\"Open\",\"C:\\\\Basutto1.zip\")"); // Load
> > the roi
> > for ROI Manager
> > IJ.runMacro("roiManager(\"Select\","+select+ ")"); // Select thr
> > roi of
> > interest
> >
> > If the code below is used, the roi don't change the line width:
> >
> > Roi roi = imp.getRoi();
> > addElement(list,roi,Color.red,4);
> > ic.setDisplayList(list);
> > ic.repaint();
> > IJ.runMacro("roiManager(\"Select\","+(select+1)+ ")");
> > Roi roi1 = imp.getRoi();
> > addElement(list,roi1,Color.green,1);
> > ic.repaint();
> >
> > But, if i use this code (creating a ShapeRoi, adjusting the line
> > width and
> > after deleting this ShapeRoi) it works:
> >
> > Roi roi = imp.getRoi();
> > Shape shape = (Shape) roi.getPolygon();
> > addElement(list, shape, Color.BLACK, 2);
> > list.remove(shape);
> > addElement(list,roi,Color.red,4);
> > ic.setDisplayList(list);
> > ic.repaint();
> > IJ.runMacro("roiManager(\"Select\","+(select+1)+ ")");
> > Roi roi1 = imp.getRoi();
> > addElement(list,roi1,Color.green,1);
> > ic.repaint();
> > }
> >
> > What kind of problem is happening? I can't see the difference
> > between this
> > two pieces of code...is there somebody who could help me?
> >
> > Thanks,
> > --
> > **************************************************
> > Fernando José Ribeiro Sales
> > **************************************************
> > Email: [hidden email]
> > Tel: +55(11) 82020303
> > **************************************************
>



--
**************************************************
Fernando José Ribeiro Sales
**************************************************
Email: [hidden email]
Tel: (11) 82020303
**************************************************