Re: ROI type and ROI Manager
Posted by
selwyn on
Aug 02, 2008; 10:47pm
URL: http://imagej.273.s1.nabble.com/ROI-type-and-ROI-Manager-tp3695459p3695463.html
selwyn wrote:
> William O'Connell wrote:
>> Dear listers,
>>
>> I have a plugin which fits edges to objects in a stack of images. The
>> edge
>> points are saved as PolygonRois(type 2) in an RoiManager. I retrieve
>> the
>> ROIs in another Plugin with the getRoisAsArray() command. But the ROIs
>> are
>> now type 4, TRACE_ROIs. I want to retrieve the coordinate points, but
>> the
>> getXCoordinates() and getYCoordinates() are not supported.
>> I welcome any suggestions.
>> Bill O'Connell
>
> You might be able to use the following piece of javascript I adapted
> from ListPixelsinROI.js found under the Macros examples at the ImageJ
> website.
>
> Selwyn
>
> // List Perimeter Pixels In ROI
> //
> // Displays the coordinates and values of
> // the pixels within a non-rectangular ROI.
> //
> var img = IJ.getImage();
> var roi = img.getRoi();
> var mask = roi!=null?roi.getMask():null;
> if (mask==null)
> IJ.error("Non-rectangular ROI required");
> var ip = img.getProcessor();
> var r = roi.getBounds();
> var z = img.getCurrentSlice()-1;
> var toggle = 0;
> for (var y=0; y<r.height; y++) {
> for (var x=0; x<r.width; x++) {
> if (mask.getPixel(x,y)!=toggle) {
> toggle = (toggle == 0) ? 255 : 0;
> IJ.log(x+" \t"+y+" \t"+z+" \t"+ip.getPixel(r.x+x,r.y+y));
> }
> }
> }
Oops last line should be changed to the following for absolute coordinates:
IJ.log((r.x+x)+" \t"+(r.y+y)+" \t"+z+" \t"+ip.getPixel(r.x+x,r.y+y));
selwyn