[Insight-users] Threshold Level Set Segmentation Example

Kashigar, Aidin (GE Healthcare) Aidin.Kashigar at ge.com
Fri Aug 11 16:30:01 EDT 2006


Hello Luis,

Thank you for your response. I understand the reason behind using Fast
Marching filter now. From the documentations for the two filters, it
seems that for Threshold Level Set to function correctly, Fast Marching
only needs to compute values <= iso-surface value of the level set
filter. The extra computation done does not seem to be used by the
filter and can cost a lot of CPU time when the algorithm is run in 3D.
Am I correct in assuming that I can set the stopping value for fast
marching to be 1 when the iso-surface I am using is 0?

Thanks,

Aidin




-----Original Message-----
From: Luis Ibanez [mailto:luis.ibanez at kitware.com] 
Sent: Friday, August 11, 2006 3:16 PM
To: Kashigar, Aidin (GE Healthcare)
Cc: insight-users at itk.org
Subject: Re: [Insight-users] Threshold Level Set Segmentation Example


Hi Aidin,


I'm assuming that you are refering to the example in the ITK Software
Guide,

       http://www.itk.org/ItkSoftwareGuide.pdf


in section 9.3.4 "Threshold Level Set Segmentation"
pdf-page 587. whose associated source code is in the
directory:


           Insight/Examples/Segmentation/



If that's the case,

                       Please note that the seeds to the FastMarching
filter have an initial time value, that is currently set to the
(-initialDistance), since the speed is 1.0, units of distance are equal
here to units in time for the time-crossing-map.  With this
initialization, the time crossing map has as oldest time the
(-initialDistance) value only at the seed points. From it, the time
increases, as you pointed out, as a distance function from the seeds.

This makes that the time-crossing-map will have zero values at the
position of the distance map that are equal to "initialDistance" from
all the seed points.

What the Thresold LevelSet filter receives as input is then an image
with negative values inside of the object and positive values outside of
the object.  The "object" being the region of pixels at distance <
initialDistance from the seed points.

Note that the example writes out the output of the FastMarching filter
in lines 373 as "fastMarchingImage.mha".  Please look at this image with
any software that allows you to compute isocontours (e.g. ParaView,
Slicer...) and you can verify the shape and size of the region that is
being passed as an initial level set to the Threshold segmentation level
set.

Note that initializating the Threshold segmentation level set with seed
(isolated pixels), as you suggested, will not work too well, because the
curvature computations in the initial iterations will make such isolated
pixels colapse due to their high curvature.



    Regards,


       Luis


----------------------------------------
Kashigar, Aidin (GE Healthcare) wrote:
> Hello all,
>  
> I have a question about the example provided for 
> ThresholdSegmentationLevelSetImageFilter. The exmaple uses the result 
> of a Fast Marching filter for the seed image of the Threshold Level 
> Set segmentaiton filter. The Fast Marching filter has a speed constant

> of 1 and is therefore just an approximate distance function from the 
> seed points.
>  
> What I don't understand is the reason behind using Fast Marching for 
> the seed image. Why is it not sufficient to send in a binary image of 
> the seed points as the seed image? If only the seed points are 
> required for the filter, can I not set the stopping value for the Fast

> Marching to 1 and get the same result for the segmentation?
>  
> - Aidin
> 
> 
> ----------------------------------------------------------------------
> --
> 
> _______________________________________________
> 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