<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML dir=ltr><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=unicode">
<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>Ken, </FONT></DIV>
<DIV dir=ltr><FONT face=Arial color=#000000 size=2>I think you don't need steps
2 and 3 as the watershed algorithm already does something similar. It uses a
different algorithm from ImageJ to obtain similar results, if I
understand correctly, (Josh Cates can correct me if I am wrong) Steps 2 and 3 as
described in ImageJ are how the watershed is implemented and are what one may
call 'uphill' method, whereas ITK uses a 'downhill' method which is much faster.
</FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>I have already done what I think you want
to do, it is really as simple as appling the distance map, applying some
filtering, and then applying the watershed algorithm. However I originally used
my own distance algorithm based on progressive erosion (I did not realize that
there was a distance map in ITK at that time or perhaps it had not
been included yet) </FONT></DIV>
<DIV dir=ltr><FONT face=Arial size=2></FONT> </DIV>
<DIV dir=ltr><FONT face=Arial size=2>I used the output of my distance algorithm,
saved to a separate file, as input to the ITK based watershed routine, this
routine applys a prefilter with selectable parameters (I think I used curvature
flow anistropic diffusion) and the output of this is the input for the
watershed. Along the way the output is also used as input to a slicer to create
quick visualization of what has been done. It should be no problem to use the
output of Danielsson distance map in a similar way. </FONT></DIV>
<P dir=ltr>See 'Atwood, Jones, Lee, Hench ; SCRIPTA MATERIALIA 51 (11):
1029-1033 DEC 2004 ; Analysis of pore interconnectivity in bioactive
glass foams using X-ray microtomography"</P>
<P dir=ltr>for the kind of results I was able to get for separating
interconnected bubbles in 3-d foam. </P>
<P dir=ltr>I got the idea from this article where they use it for plant
cell walls, in fact this is how I first found out about ITK, searching for
3d-watershed algorithms:</P>
<P dir=ltr> <A
href="http://www.plantsci.cam.ac.uk/Haseloff/laboratory/labdocs/workPDFs_2004/Work2003_lo_res.pdf">www.plantsci.cam.ac.uk/Haseloff/laboratory/<WBR>labdocs/workPDFs_2004/Work2003_lo_res.pdf</A>
</P><PRE dir=ltr> </PRE>
<DIV dir=ltr>--Robert</DIV>
<DIV dir=ltr>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B>
insight-users-bounces+r.atwood=imperial.ac.uk@itk.org on behalf of Ken
Urish<BR><B>Sent:</B> Mon 05/09/2005 18:13<BR><B>To:</B>
insight-users@itk.org<BR><B>Subject:</B> [Insight-users] Watershed and Image
J<BR></FONT><BR></DIV>
<DIV>Hey<BR><BR>Im trying to put some code together to do a watershed similar to
ImageJ. <BR><BR>In ImageJ's watershed method:<BR>1) A euclidean distance map of
the binary image is created. <BR>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).<BR>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. <BR><BR>I
dont have alot of experience with Watershed in ITK. <BR>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?<BR><BR>Is there an easier way to do this? If anyone can
help me out, the first round is on me at
MICCAI.<BR><BR>Thanks<BR>--Ken--<BR></DIV></BODY></HTML>