[Insight-developers] itkShapeDetectionLevelSetFilter

Blezek, Daniel J (CRD) blezek@crd.ge.com
Mon, 4 Feb 2002 14:27:48 -0500


Lydia,

  Thank you for the example. I used a TimeStepSize of 3, and 450 iterations to get the same
segmentation that you got in my example.  The documentation is a little slim on how to choose these
parameters effectively.  The algorithm seems to need a large number of iterations to produce any
useful segmentation, even with the band set quite small.

  Is there some way of speeding this algorithm up?  I think it has great potential for my
segmentation problem, but it's way to slow for interactive use.

Thanks,
-dan

> -----Original Message-----
> From: Lydia Ng [mailto:lng@insightful.com]
> Sent: Friday, February 01, 2002 11:00 PM
> To: insight-developers@public.kitware.com
> Subject: FW: [Insight-developers] itkShapeDetectionLevelSetFilter
> 
> 
>  
> Dan, Jim:
>  
> Attached are some results and sample code.
>  
> output-1.png: initial seed point inside the square, after 300 iter.
> output-2.png: initial seed point in the background, after 1000 iters.
>  
> Missing/faulty ITK components:
>  
> [1] This algorithm requires a smoothed gradient such as that 
> produced by
> a derivative of Gaussian (DoG) operation. I've updated the docs for
> ShapeDetectionLevelSetFilter to say this.
>  
> [2] The only filter that I can find that performs a DoG 
> operation is the
> GradientResursiveGaussianImageFilter. However, the output I 
> get is a bit
> strange. The functionality of this filter needs to be validated.
>  
> A workaround for DoG is to first do a Gaussian smooth and 
> then take the
> derivative. I have used DiscreteGaussianImageFilter and
> GradientImageFilter.
>  
> [3] DiscreteGaussianImageFilter is bit quirky as it won't compile
> unlesss the input image type is same as the output image type - this
> seems a bit restrictive + it's not documented.
>  
> My workaround is to cast the input char image to a double image 
> ( via CastImageFilter) before calling DisceteGaussianImageFilter.
>  
> [4] There was no ITK component to create an edge image potential.
> I've just checked one in. The filter is called 
> EdgePotentialImageFilter
> an takes an input a CovariantVector image which represents 
> the gradient
> of an image.
>  
> [5] The output level set needs to be binarized (by 
> thresholding at zero)
> to produce the output segmentation mask. Currently there is 
> no ITK that
> does this. ThresholdImageFilter sets out of range value to an outside
> value while in-range values are passed straight through.
>  
> [6] PNGImageIO::Write() doesn't do anything.
>  
> - Lydia
> 
> 		 
> 
> 			-----Original Message----- 
> 			From: Blezek, Daniel J (CRD) 
> 			Sent: Fri 2/1/2002 8:48 AM 
> 			To: 'insight-developers@public.kitware.com' 
> 			Cc: 
> 			Subject: [Insight-developers]
> itkShapeDetectionLevelSetFilter
> 			
> 			
> 
> 			Hi all,
> 			
> 			  I'm trying to figure out exactly how to use
> the ShapeDetectionLevelSetFilter.  I have a small test
> 			image that I've enclosed (png format).  Can
> anyone send me an example of how to get the level set
> 			code to segment any of the shapes in this image?
> 			
> 			Thanks,
> 			-dan
> 			
> 			--
> 			Daniel Blezek, Ph.D.
> 			blezek@crd.ge.com
> 			Visualization and Computer Vision Lab, Imaging
> Technologies
> 			GE Corporate Research & Development
> 			
> 			
> 			
> 
>