[Insight-users] Threshold Level Set Segmentation Example

Luis Ibanez luis.ibanez at kitware.com
Mon Aug 14 07:21:10 EDT 2006


Hi Kashigar,

Yes, you can set the stopping value to any time-value that is
larger than the iso-value that you plan to use as level set.

Fast marching is quite fast, so you probably shouldn't be too
concerned about speed here. Whenever you have performance
concerns, there is nothing better than an experiment for
clearing things up.

Just use the FastMarchingLevelSet application available in
InsightApplications, and test it with the dataset that you
plan to process. That will give you a sense of the computation
time that you can expect. Please make sure to compile ITK
and the application for "Release", it makes a great difference
in performance with respect to "Debug".



     Regards,


         Luis




--------------------------------------
Kashigar, Aidin (GE Healthcare) wrote:
> 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