[ImageJ-devel] ROI presentation powerpoint

Gabriel Landini G.Landini at bham.ac.uk
Tue May 24 09:27:00 CDT 2011


On Tuesday 24 May 2011 13:24:33 Lee Kamentsky wrote:
> Gabriel, by boundaries, do you mean the perimeter pixels? I think I
> could put that interface in.

Hi Lee:
Excellent.
 
> Under the covers, the abstract ROI classes ask for rasters - runs of
> pixels at constant Y and incremental X. That's pretty much the same
> thing as finding two of the perimeter pixels, so we could add an
> interface to iterate through the perimeter pixels. You wouldn't get them
> in the right order though, not clockwise or counterclockwise along the
> boundary. I'm not sure how to handle topologically complex objects where
> iterating clockwise doesn't make sense (objects with holes, objects that
> are disjoint).

I seem to remember somebody encoding holes ROIs in the opposite 
direction of the boundary ROIs. I am not sure what advantage this has. 

In some imaging packages I worked with before (notably Optimas, now defunct) 
there were 2 different resolutions for the positioning, one for addressing the 
image and one for ROIs. The ROIs were located (by default) on the centre of 
the "pixels". I know that pixels are really points, but if you enlarge the 
image, they look like squares, so it would be useful to really have an 
intuitive positioning of the ROI nodes on the image.

There are at least 8 different ways to encode a blob, depending whether the 
ROI centres on the pixels belonging to the object boundary, on the background 
bounday pixel centres or to the boundaries of the underlying grid, and whether 
4 or 8 connected.

As far as I know, IJ uses the top left corner to position the polygon, but 
then this creates an un-intuitive situation of the ROI not reaching the point 
the it will paint if you fill the ROI.
ImageJ's polygon length computation is somewhat difficult to grasp. It does 
not return the same length as the standard Freeman's algorithm (the difference 
is not too large, but it is different). This needs to be investigated a bit, I 
think.

There used to be a problem (not sure if this is still there) that if you 
filled ROI then get the ROI again the wand, then drew the 
outline, it would be bigger by 1 pixel again to the right and down. Somehow 
this does not seem to be the ideal. An ROI should define a blob, that when 
filled and detected again with the want, the same boundary is detected.
Although I eventually became used to to live with it, I think it would be 
better to avoid this in future.

I contacted Curtis so he has my skype id and hope to join to -at least to 
listen- about the progress tomorrow.

Regards

Gabriel






More information about the ImageJ-devel mailing list