Modules:Simple Region Growing-Documentation-3.6

From Slicer Wiki
Jump to: navigation, search
Home < Modules:Simple Region Growing-Documentation-3.6

Return to Slicer 3.6 Documentation

Module Name

Simple Region Growing

Caption 1
Caption 2
Caption 3

General Information

Module Type & Category

Type: CLI

Category: Segmentation

Authors, Collaborators & Contact

  • Author: Jim Miller
  • Contact: millerjv at ge.com

Module Description

Simple Region Growing is a statistical region growing algorithm. The algorithm takes one or more seeds as input. It executes using the following steps:

  • A statistical model of the foreground (mean and standard deviation of intensity) is estimated over neighborhoods of the seed points. The statistical model is converted to a scalar threshold range using the mean intensity of a seed point plus or minus a multiplier or the standard deviation.
  • The algorithm then constructs a segmentation by labeling all voxels that are connected to the seed voxels and satisfy the scalar threshold range.

After this initial segmentation, the statistical model can be iteratively refined by re-calculating the mean and standard deviation of the intensity of the voxels in the initial segmentation. The refined statistical model in turn is converted to a new scalar threshold range as described in the preceding paragraph. This is followed by a new segmentation where the algorithm labels all voxels connected to the seed voxels and satisfy the new scalar threshold range. The number of repetitions for the segmentation process is specified using an iteration parameter to the algorithm.

Through this process, Simple Region Growing attempts to adapt to the statistical properties of the image. Initially, the statistical model is based strictly on the neighborhoods about the seeds. This statistical model is precise (being based on the user supplied seeds) but also uncertain (because the number of samples in the model can be rather small). After the initial segmentation, the statistics are recalculated which yields a more certain model (because the number of samples in the model can be rather large).

Usage

  • Set the parameters for smoothing. The smoothing parameters are Smoothing iterations and the Time step. The smoothing parameters correspond to the parameters of the itkCurvatureFlowImageFilter where smoothing iterations specifies the number of iterations to perform the smoothing and the time step parameter specifies the time step between the different level set contour. In general use a small time step parameter for stability of smoothing.
  • Set the parameters for segmentation. The segmentation parameters correspond to those of the itkConfidenceConnectedImageFilter. The Number of iterations corresponds to the number of repetitions for recomputing the segmentation, the Multiplier parameter corresponds to the standard deviation from the mean intensity based on the seed point voxel. In general a setting of 2.5 ensures that 99% of samples are captured. The parameter Neighborhood Radius corresponds to the neighborhood around the seed point that will be evaluated. Setting this parameter to 1 corresponds to 8 neighbors for 2D and 26 neighbors for 3D image.
  • Specify the input volume
  • Specify the output volume

Examples, Use Cases & Tutorials

  • Useful for segmenting out regions of interest in a volume (image)
  • Example Test: Shows an example of segmenting the brain ventricles in an MR volume of brain

ConfidenceConnectedTest.cxx

Quick Tour of Features and Use

List all the panels in your interface, their features, what they mean, and how to use them. For instance:

  • Smoothing parameters panel:
* Smoothing iterations: Specifies the number of iterations for performing the smoothing
* Time step: Specifies the time step between the iterations. In general use a smaller setting of the time step.
  • Segmentation parameters panel:
* Number of iterations: Number of iterations for repeating the segmentation 
* Multiplier: Number of standard deviations from the mean intensity computed on the seed points
* Neighborhood Radius: Distance of neighboring voxels (pixels) to use from the center pixel (seed point)
* Output Label Value: Intensity assigned to the voxels (pixels) segmented as foreground
  • IO panel:
* Input Volume: Input
* Output Volume: Output

Development

Dependencies

This module makes use of the ITKConfidenceConnectedImageFilter and ITKCurvatureFlowImageFilter.

Known bugs

Follow this link to the Slicer3 bug tracker.


Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Documentation:

Usage:

  ConfidenceConnected  [--processinformationaddress
                                        <std::string>] [--xml] [--echo]
                                        [--seed
                                        <std::vector<std::vector<float> >>]
                                        ...  [--labelvalue <int>]
                                        [--neighborhood <int>]
                                        [--multiplier <double>]
                                        [--iterations <int>] [--timestep
                                        <double>] [--smoothingIterations
                                        <int>] [--] [--version] [-h]
                                        <std::string> <std::string>


Where: 

   --processinformationaddress <std::string>
     Address of a structure to store process information (progress, abort,
     etc.). (default: 0)

   --xml
     Produce xml description of command line arguments (default: 0)

   --echo
     Echo the command line arguments (default: 0)

   --seed <std::vector<std::vector<float> >>  (accepted multiple times)
     Seed point(s) for region growing (default: None)

   --labelvalue <int>
     The integer value (0-255) to use for the segmentation results. This
     will determine the color of the segmentation that will be generated by
     the Region growing algorithm (default: 2)

   --neighborhood <int>
     The radius of the neighborhood over which to calculate intensity model
     (default: 1)

   --multiplier <double>
     Number of standard deviations to include in intensity model (default:
     2.5)

   --iterations <int>
     Number of iterations of region growing (default: 5)

   --timestep <double>
     Timestep for curvature flow (default: 0.0625)

   --smoothingIterations <int>
     Number of smoothing iterations (default: 5)

   --,  --ignore_rest
     Ignores the rest of the labeled arguments following this flag.

   --version
     Displays version information and exits.

   -h,  --help
     Displays usage information and exits.

   <std::string>
     (required)  Input volume to be filtered

   <std::string>
     (required)  Output filtered


   Description: A simple region growing segmentation algorithm based on
   intensity statistics. To create a list of fiducials (Seeds) for this
   algorithm, click on the tool bar icon of an arrow pointing to a
   starburst fiducial to enter the 'place a new object mode' and then use
   the fiducials module. This module uses the Slicer3 Command Line
   Interface (CLI) and the ITK filters CurvatureFlowImageFilter and
   ConfidenceConnectedImageFilter.

   Author(s): Jim Miller

   Acknowledgements: This command module was derived from Insight/Examples
   (copyright) Insight Software Consortium

More Information

Acknowledgment

This work is part of the National Alliance for Medical Image Computing (NAMIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on the National Centers for Biomedical Computing can be obtained from National Centers for Biomedical Computing.

References