[Insight-users] GeodesicActiveContourImageFilter

Luis Ibanez luis.ibanez at kitware.com
Mon Feb 5 19:07:22 EST 2007


Hi Pui,

Please read carefully the description of this filter
in the ITK Software Guide.

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

You seem to have missed many of the important feature
of the example. It may be convenient for you to read
the previous sections on Level Sets. In particular the
section on the FastMarching filter and the ShapeDetection
filter.


The source code of the GeodesicActiveContour example
is available at:


      Insight/Code/Segmentation/
        GeodesicActiveContourImageFilter.cxx


In lines 319-320 you will find:

   geodesicActiveContour->SetInput(  fastMarching->GetOutput() );
   geodesicActiveContour->SetFeatureImage( sigmoid->GetOutput() );


Where the SetInput() method is setting the initial level set
to be used by the GeodesicActiveContour filter. This initial
level set is computed in this particular case, as the output
of a FastMarching image filter that is feed only with seed point.
The fast marching filter in this case is simply producing a
set of circles (or sphere) around the seed points.

The SetFeatureImage() is connecting the image that is going
to be used for computing the speed image. This feature image
is computed as the sigmoid mapping of the gradient magnitude
image.  The goal is to have an image that has low (dark) value
in the edges where you want your level set to stop, and high
(bright) values in the regions where you want the level set to
propagate rapidly.


The command line parameters passed to the example are described
in lines 128-137:

   if( argc < 10 )
     {
     std::cerr << "Missing Parameters " << std::endl;
     std::cerr << "Usage: " << argv[0];
     std::cerr << " inputImage  outputImage";
     std::cerr << " seedX seedY InitialDistance";
     std::cerr << " Sigma SigmoidAlpha SigmoidBeta";
     std::cerr << " PropagationScaling"  << std::endl;
     return 1;
     }



    a) Input image (the image to be segmented
    b) Ouput image (segmentation resulting from the level set)
    c) (x,y) index coordinates of the seed point for FastMarching
    d) initial distance for fast marcing
    e) Sigma for the smoothing of the gradient magnitude filter
    f) Alpha and Beta parameters of the Sigmoid
    g) Propagation scaling parameter for the Geodesic Active contour



In general the initial level set image could be *any* rough
segmentation of the object. You could produce such initial
segmentation by a manual delineation, a quick region growing
algorithm or a simple thresholding.

It is quite common to implement two-stage segmentation methods
where the first stage only produces a quick and dirty segmentation,
that is then passed to a second stage where a level set method will
fine tune the segmentatino. Note that level sets cannot perform
magic on a poor initial segmentation. It is at least desirable for
the initial segmentation to be close to the edges of the object
to be segmented.



      Regards,


        Luis


==================
Pui Yu Lau wrote:
> Hi,
> 
>    I'm a new user to ITK, and I've been trying to learn to use some of 
> the segmentation filters.  I've been looking at the Geodesic Active 
> Contour method, and I am confused on how it actually works.  Looking 
> through the guide, it seems that it takes two initial image inputs, 
> where the first one is the initial level set, and the second is the 
> feature image.  However, when running the example of 
> GeodesicActiveContourImageFilter, the images used were 
> BrainProtonDensitySlice.png and 
> GeodesicActiveContourImageFilterOutput.png, where the latter does not 
> exist.  So, my question is, in this case, is the BrainProtonDensitySlice 
> the feature image (input), while the 
> GeodesicActiveContourImageFilterOutput is the initial level set 
> (output)?  If not, what exactly is the initial level set image?
> 
> - PY
> 
> _______________________________________________
> 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