[Insight-users] Watershed and Image J

Richard Beare richard.beare at gmail.com
Mon Sep 5 20:16:40 EDT 2005


Hi,

I'm not yet up to speed on the full contents of itk - after all there
is a lot of stuff there. However here is the general approach you need
for splitting circular objects. The description used by imageJ sounds
a bit different to what I'd use.

The basic procedure is to carry out a watershed on the distance
transform of each blob that you may want to split. A blob will be
split into multiple pieces if there are multiple peaks in the distance
transform of the blob. You may be able to do all of the splitting at
once, depending on the style of implementation of the watershed
transform. If the itk watershed tranform performs as advertised then
applying it directly to the distance transform of a blob should result
in splitting - there is no need to find the "ultimate point", because
it corresponds to the peak in the distance transform which is what the
watershed will end up finding for you. The complicating factor is how
the watershed deals with the background region and plateaus - I
haven't tested the itk watershed but it is described as a top down one
and may have problems in this area.

My preferred approach to this kind of problem that I don't think is
yet possible in itk (I hope to work on it soon) is to use a distance
transform, optionally smooth it, find regional maxima or similar, and
then carry out a marker based watershed transform.

Unfortunately this probably doesn't help :-)

On 9/6/05, Ken Urish <ken.urish at gmail.com> wrote:
> Hey
>  
>  Im trying to put some code together to do a watershed similar to ImageJ. 
>  
>  In ImageJ's watershed method:
>  1) A euclidean distance map of the binary image is created. 
>  2) The "Ultimate Points" of the map is then created by eroding an object
> until only one pixel remains. One object can have multiple "ultimate points"
> (think overlapping circles).
>  3) The image is then dilated from each of these points until : a) it hits
> the original object boundary or b) it hits the dilation of another object.
> In case b, a one-pixel wide boundary of background color seperates the
> colliding dilating objects. Essentially this is a nice way to seperate two
> overlapping circles. 
>  
>  I dont have alot of experience with Watershed in ITK. 
>  Im using the DanielssonDistanceMap to create the distance map. Is there a
> convienent way to get the ultimate points of the image? This information
> looks like its stored in one of the watershed classes, but I cant quite see
> where. Does ITK have a filter that will flood fill from a point until it
> hits another dilating object or the initial boundary edge?
>  
>  Is there an easier way to do this? If anyone can help me out, the first
> round is on me at MICCAI.
>  
>  Thanks
>  --Ken--
>  
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 
> 
>


More information about the Insight-users mailing list