Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage > Class Template Reference

A base class which defines the API for implementing a special class of image segmentation filters using level set methods. More...

#include <itkSegmentationLevelSetImageFilter.h>

Inheritance diagram for itk::SegmentationLevelSetImageFilter:

Inheritance graph
[legend]
Collaboration diagram for itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef SegmentationLevelSetImageFilter Self
typedef SparseFieldLevelSetImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::ValueType ValueType
typedef Superclass::IndexType IndexType
typedef Superclass::TimeStepType TimeStepType
typedef Superclass::OutputImageType OutputImageType
typedef Superclass::InputImageType InputImageType
typedef SegmentationLevelSetFunction<
TOutputImage > 
SegmentationFunctionType
typedef SegmentationFunctionType::FeatureImageType FeatureImageType

Public Methods

virtual const char * GetClassName () const
virtual SegmentationFunctionType::ImageType * GetSpeedImage () const
virtual void SetMaximumRMSError (ValueType _arg)
virtual ValueType GetMaximumRMSError ()
virtual void SetMaximumIterations (unsigned int _arg)
virtual unsigned int GetMaximumIterations ()
virtual void SetFeatureImage (FeatureImageType *f)
virtual FeatureImageTypeGetFeatureImage () const
void SetUseNegativeFeaturesOn ()
void SetUseNegativeFeaturesOff ()
virtual void SetUseNegativeFeatures (bool _arg)
virtual bool GetUseNegativeFeatures ()
virtual void SetFeatureScaling (ValueType _arg)
virtual ValueType GetFeatureScaling ()
virtual void SetCurvatureScaling (ValueType _arg)
virtual ValueType GetCurvatureScaling ()
virtual void SetSegmentationFunction (SegmentationFunctionType *s)
virtual SegmentationFunctionTypeGetSegmentationFunction ()

Protected Methods

virtual ~SegmentationLevelSetImageFilter ()
 SegmentationLevelSetImageFilter ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
void GenerateData ()
bool Halt ()
virtual void InitializeIteration ()

Protected Attributes

bool m_UseNegativeFeatures
ValueType m_FeatureScaling
ValueType m_CurvatureScaling

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >

A base class which defines the API for implementing a special class of image segmentation filters using level set methods.

OVERVIEW
This object defines the framework for a class of segmentation filters which use level set methods. These filters work by constructing a ``feature image'' onto which the evolving level set locks as it moves. In the feature image, values that are close to zero are associated with object boundaries. An original (or preprocessed) image is given to the filter as the feature image and a seed for the level set is given as the input of the filter. The seed is converted into a level set embedding which propagates according to the features calculated from the original image.
INPUTS
The input to any subclass of this filter is the seed image for the initial level set embedding. As with other subclasses of the SparseLevelSetImageFilter, the type of the input image is is not important. The (RequestedRegion) size of the seed image must, however, match the (RequestedRegion) size of the feature image.

Depending on the particular application and filter that you are using, the feature image should be preprocessed with some type of noise reduction filtering. The feature image should be of a floating point type (floats or doubles). You may need to cast your image to this type before attaching it to this filter.

OUTPUTS
The output of any subclass of this filter is a level set embedding as described in SparseFieldLevelSetImageFilter. The zero crossings of the output image give the pixels closest to the level set boundary. By ITK convention, positive values are pixels inside the segmented region and negative values are pixels outside the segmented region.
PARAMETERS
The MaximumRMSChange parameter is used to determine when the solution has converged. A lower value will result in a tighter-fitting solution, but will require more computations. Too low a value could put the solver into an infinite loop unless a reasonable MaximumIterations parameter is set. Values should always be greater than 0.0 and less than 1.0.

The MaximumIterations parameter can be used to halt the solution after a specified number of iterations, overriding the MaximumRMSChange halting criteria.

The UseNegativeFeatures parameter tells the function object to reverse the sign of the feature image, which also reverses the INSIDE OUTSIDE sign convention.

The FeatureScaling parameter controls the magnitude of the features calculated for use in the level set propagation speed. This is important in controlling the relative effect of the feature values versus the curvature values (and possibly other terms). Default value is 1.0.

The CurvatureScaling parameter controls the magnitude of the curvature values which are calculated on the evolving isophote. This is important in controlling the relative effect of curvature in the calculation. Default value is 1.0.

Todo:
Use a second input image for the feature image instead of keeping the feature image as a parameter. This may be tricky because the feature image may be of a different type as the first input (seed image) and so the default pipeline mechanism will have to be modified. When this is done, however, it will allow the feature image to be properly updated in a unified pipeline with the seed image.

Definition at line 100 of file itkSegmentationLevelSetImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage>
typedef SmartPointer<const Self> itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::ConstPointer
 

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 108 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SegmentationFunctionType::FeatureImageType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::FeatureImageType
 

Feature image type

Definition at line 121 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::IndexType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::IndexType
 

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 112 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::InputImageType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::InputImageType
 

Information derived from the image types.

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 115 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::OutputImageType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::OutputImageType
 

Some convenient typedefs.

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 114 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SmartPointer<Self> itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::Pointer
 

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 107 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SegmentationLevelSetFunction<TOutputImage> itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SegmentationFunctionType
 

The generic level set function type

Definition at line 118 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SegmentationLevelSetImageFilter itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::Self
 

Standard class typedefs

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 105 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SparseFieldLevelSetImageFilter<TInputImage, TOutputImage> itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::Superclass
 

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 106 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::TimeStepType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::TimeStepType
 

Typedefs from the superclass

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 113 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::ValueType
 

Inherited typedef from the superclass.

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 111 of file itkSegmentationLevelSetImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage>
virtual itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::~SegmentationLevelSetImageFilter   [inline, protected, virtual]
 

Definition at line 191 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SegmentationLevelSetImageFilter   [protected]
 


Member Function Documentation

template<class TInputImage, class TOutputImage>
void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GenerateData   [protected, virtual]
 

Overridden from ProcessObject to set certain values before starting the finite difference solver and then create an appropriate output

Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual const char* itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetClassName   const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetCurvatureScaling   [virtual]
 

Set/Get the scaling of the curvature.

template<class TInputImage, class TOutputImage>
virtual FeatureImageType* itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetFeatureImage   const [inline, virtual]
 

Set/Get the feature image to be used for speed function of the level set equation

Definition at line 145 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetFeatureScaling   [virtual]
 

Set/Get the scaling of the propagation speed.

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetMaximumIterations   [virtual]
 

Set/Get the maximum number of iterations allowed for the solver. This prevents infinite loops if a solution "bounces".

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetMaximumRMSError   [virtual]
 

Set/Get the maximum RMS error allowed for the solution. The solver will halt once this threshold has been reached.

template<class TInputImage, class TOutputImage>
virtual SegmentationFunctionType* itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetSegmentationFunction   [inline, virtual]
 

Set the segmentation function. In general, this should only be called by a subclass of this object. It is made public to allow itk::Command objects access.

Definition at line 186 of file itkSegmentationLevelSetImageFilter.h.

References HardConnectedComponentImageFilter::PrintSelf().

template<class TInputImage, class TOutputImage>
virtual SegmentationFunctionType::ImageType* itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetSpeedImage   const [inline, virtual]
 

Definition at line 149 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual bool itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::GetUseNegativeFeatures   [virtual]
 

Set/Get the value of the UseNegativeFeatures flag. This flag controls whether (true) or not (false) the direction of the speed function is reversed. By default, level set segmentation filters take ``inside'' values as positive, and ``outside'' values as negative.

template<class TInputImage, class TOutputImage>
bool itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::Halt   [protected, virtual]
 

Tells the solver when the solution has converged within the specified parameters.

Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::InitializeIteration   [inline, protected, virtual]
 

Overrides parent implementation

Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.

Definition at line 197 of file itkSegmentationLevelSetImageFilter.h.

References HardConnectedComponentImageFilter::GenerateData().

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::PrintSelf std::ostream &    os,
Indent    indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetCurvatureScaling ValueType    _arg [virtual]
 

Set/Get the scaling of the curvature.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetFeatureImage FeatureImageType   f [inline, virtual]
 

Set/Get the feature image to be used for speed function of the level set equation

Definition at line 140 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetFeatureScaling ValueType    _arg [virtual]
 

Set/Get the scaling of the propagation speed.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetMaximumIterations unsigned int    _arg [virtual]
 

Set/Get the maximum number of iterations allowed for the solver. This prevents infinite loops if a solution "bounces".

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetMaximumRMSError ValueType    _arg [virtual]
 

Set/Get the maximum RMS error allowed for the solution. The solver will halt once this threshold has been reached.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetSegmentationFunction SegmentationFunctionType   s [virtual]
 

Set the segmentation function. In general, this should only be called by a subclass of this object. It is made public to allow itk::Command objects access.

template<class TInputImage, class TOutputImage>
virtual void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetUseNegativeFeatures bool    _arg [virtual]
 

Set/Get the value of the UseNegativeFeatures flag. This flag controls whether (true) or not (false) the direction of the speed function is reversed. By default, level set segmentation filters take ``inside'' values as positive, and ``outside'' values as negative.

template<class TInputImage, class TOutputImage>
void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetUseNegativeFeaturesOff   [inline]
 

This method reverses the speed function direction, effectively changing inside feature values to outside feature values and vice versa

Definition at line 159 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
void itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::SetUseNegativeFeaturesOn   [inline]
 

This method reverses the speed function direction, effectively changing inside feature values to outside feature values and vice versa

Definition at line 155 of file itkSegmentationLevelSetImageFilter.h.


Member Data Documentation

template<class TInputImage, class TOutputImage>
ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::m_CurvatureScaling [protected]
 

Scalar parameter for curvature.

Definition at line 222 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
ValueType itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::m_FeatureScaling [protected]
 

Scalar parameter for propagation speed.

Definition at line 219 of file itkSegmentationLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
bool itk::SegmentationLevelSetImageFilter< TInputImage, TOutputImage >::m_UseNegativeFeatures [protected]
 

Flag which sets the inward/outward direction of positive propagation speed.

Definition at line 216 of file itkSegmentationLevelSetImageFilter.h.


The documentation for this class was generated from the following file:
Generated at Wed Mar 12 01:21:47 2003 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000