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

itk::LevelSetFunction< TImageType > Class Template Reference
[Finite Difference FunctionsFunctions]

The LevelSetFunction class is a generic function object which can be used to create a level set method filter when combined with an appropriate finite difference image filter. (See FiniteDifferenceImageFilter.). More...

#include <itkLevelSetFunction.h>

Inheritance diagram for itk::LevelSetFunction:

Inheritance graph
[legend]
Collaboration diagram for itk::LevelSetFunction< TImageType >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef LevelSetFunction Self
typedef LevelSetFunctionBase<
TImageType > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::ImageType ImageType
typedef Superclass::PixelType PixelType
typedef Superclass::TimeStepType TimeStepType
typedef Superclass::ScalarValueType ScalarValueType
typedef Superclass::RadiusType RadiusType
typedef Superclass::NeighborhoodType NeighborhoodType
typedef Superclass::BoundaryNeighborhoodType BoundaryNeighborhoodType
typedef Superclass::VectorType VectorType
typedef Superclass::FloatOffsetType FloatOffsetType

Public Methods

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
virtual TimeStepType ComputeGlobalTimeStep (void *GlobalData) const
virtual void Initialize (const RadiusType &r)
virtual void ReleaseGlobalDataPointer (void *GlobalData) const
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=m_ZeroOffset) const
virtual PixelType ComputeUpdate (const BoundaryNeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &=m_ZeroOffset) const
virtual void * GetGlobalDataPointer () const

Static Public Methods

Pointer New ()

Protected Methods

 LevelSetFunction ()
 ~LevelSetFunction ()
void PrintSelf (std::ostream &os, Indent indent) const

Static Protected Attributes

double m_WaveDT
double m_DT

Detailed Description

template<class TImageType>
class itk::LevelSetFunction< TImageType >

The LevelSetFunction class is a generic function object which can be used to create a level set method filter when combined with an appropriate finite difference image filter. (See FiniteDifferenceImageFilter.).

LevelSetFunction implements a generic level set function. This function is an expanded form of the basic equation developed in [1].

where is an advection term, is a propagation (growth) term, and is a spatial modifier term for the mean curvature . , , and are all scalar constants.

Terms in the equation above are supplied through virtual methods, which must be subclassed to complete an implementation. Terms can be eliminated from the equation by setting the corresponding constants to zero. A wide variety of level set methods can be implemented by subclassing this basic equation.

In ITK, the usual sign convention is that the INSIDE of a surface contains POSITIVE values and the OUTSIDE of the surface contains NEGATIVE values.

Warning:
You MUST call Initialize() in the constructor of subclasses of this object to set it up properly to do level-set Calculations. The argument that you pass Initialize is the radius of the neighborhood needed to perform the calculations. If your subclass does not do any additional neighborhood processing, then the default radius should be 1 in each direction.
REFERENCES

[1] Sethian, J.A. Level Set Methods. Cambridge University Press. 1996.

Definition at line 60 of file itkLevelSetFunction.h.


Member Typedef Documentation

template<class TImageType>
typedef Superclass::BoundaryNeighborhoodType itk::LevelSetFunction< TImageType >::BoundaryNeighborhoodType
 

The type of data structure that is passed to this function object to evaluate at a pixel that lies on a data set boundary.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 89 of file itkLevelSetFunction.h.

template<class TImageType>
typedef SmartPointer<const Self> itk::LevelSetFunction< TImageType >::ConstPointer
 

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 68 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::FloatOffsetType itk::LevelSetFunction< TImageType >::FloatOffsetType
 

A floating point offset from an image grid location. Used for interpolation among grid values in a neighborhood.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 91 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::ImageType itk::LevelSetFunction< TImageType >::ImageType
 

Extract some parameters from the superclass.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 77 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::NeighborhoodType itk::LevelSetFunction< TImageType >::NeighborhoodType
 

The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 87 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::PixelType itk::LevelSetFunction< TImageType >::PixelType
 

Convenient typedefs.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Definition at line 83 of file itkLevelSetFunction.h.

template<class TImageType>
typedef SmartPointer<Self> itk::LevelSetFunction< TImageType >::Pointer
 

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 67 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::RadiusType itk::LevelSetFunction< TImageType >::RadiusType
 

Neighborhood radius type

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 86 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::ScalarValueType itk::LevelSetFunction< TImageType >::ScalarValueType
 

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 85 of file itkLevelSetFunction.h.

template<class TImageType>
typedef LevelSetFunction itk::LevelSetFunction< TImageType >::Self
 

Standard class typedefs.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 65 of file itkLevelSetFunction.h.

template<class TImageType>
typedef LevelSetFunctionBase<TImageType> itk::LevelSetFunction< TImageType >::Superclass
 

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

Definition at line 66 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::TimeStepType itk::LevelSetFunction< TImageType >::TimeStepType
 

Extract some parameters from the image type.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Definition at line 84 of file itkLevelSetFunction.h.

template<class TImageType>
typedef Superclass::VectorType itk::LevelSetFunction< TImageType >::VectorType
 

The vector type that will be used in the calculations.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Definition at line 90 of file itkLevelSetFunction.h.


Constructor & Destructor Documentation

template<class TImageType>
itk::LevelSetFunction< TImageType >::LevelSetFunction   [inline, protected]
 

Definition at line 145 of file itkLevelSetFunction.h.

template<class TImageType>
itk::LevelSetFunction< TImageType >::~LevelSetFunction   [inline, protected]
 

Definition at line 146 of file itkLevelSetFunction.h.


Member Function Documentation

template<class TImageType>
virtual TimeStepType itk::LevelSetFunction< TImageType >::ComputeGlobalTimeStep void *    GlobalData const [virtual]
 

Computes the time step for an update given a global data structure. The data used in the computation may take different forms depending on the nature of the equations. This global data cannot be kept in the instance of the equation object itself since the equation object must remain stateless for thread safety. The global data is therefore managed for each thread by the finite difference solver filters.

Implements itk::FiniteDifferenceFunction< TImageType >.

template<class TImageType>
virtual PixelType itk::LevelSetFunction< TImageType >::ComputeUpdate const BoundaryNeighborhoodType   neighborhood,
void *    globalData,
const FloatOffsetType   = m_ZeroOffset
const [virtual]
 

Compute the equation value.

Implements itk::FiniteDifferenceFunction< TImageType >.

template<class TImageType>
virtual PixelType itk::LevelSetFunction< TImageType >::ComputeUpdate const NeighborhoodType   neighborhood,
void *    globalData,
const FloatOffsetType   = m_ZeroOffset
const [virtual]
 

Compute the equation value.

Implements itk::FiniteDifferenceFunction< TImageType >.

template<class TImageType>
virtual const char* itk::LevelSetFunction< TImageType >::GetClassName   const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

template<class TImageType>
virtual void* itk::LevelSetFunction< TImageType >::GetGlobalDataPointer   const [inline, virtual]
 

Returns a pointer to a global data structure that is passed to this object from the solver at each calculation. The idea is that the solver holds the state of any global values needed to calculate the time step, while the equation object performs the actual calculations. The global data should also be initialized in this method.

Implements itk::FiniteDifferenceFunction< TImageType >.

Definition at line 115 of file itkLevelSetFunction.h.

template<class TImageType>
virtual void itk::LevelSetFunction< TImageType >::Initialize const RadiusType   r [virtual]
 

This method creates the appropriate member variable operators for the level-set calculations. The argument to this function is a the radius necessary for performing the level-set calculations.

Implements itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

template<class TImageType>
itk::LevelSetFunction< TImageType >::itkStaticConstMacro ImageDimension   ,
unsigned    int,
Superclass::ImageDimension   
 

Extract some parameters from the superclass.

Reimplemented from itk::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >, itk::SegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::SegmentationLevelSetFunction< TOutputImage >.

template<class TImageType>
Pointer itk::LevelSetFunction< TImageType >::New   [static]
 

Method for creation through the object factory.

Reimplemented from itk::LightObject.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >.

template<class TImageType>
void itk::LevelSetFunction< TImageType >::PrintSelf std::ostream &    os,
Indent    indent
const [inline, 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::LevelSetFunctionBase< TImageType >.

Reimplemented in itk::LaplacianSegmentationLevelSetFunction< TImageType, TFeatureImageType >, and itk::ThresholdSegmentationLevelSetFunction< TImageType, TFeatureImageType >.

Definition at line 147 of file itkLevelSetFunction.h.

template<class TImageType>
virtual void itk::LevelSetFunction< TImageType >::ReleaseGlobalDataPointer void *    GlobalData const [inline, virtual]
 

When the finite difference solver filter has finished using a global data pointer, it passes it to this method, which frees the memory. The solver cannot free the memory because it does not know the type to which the pointer points.

Implements itk::FiniteDifferenceFunction< TImageType >.

Definition at line 133 of file itkLevelSetFunction.h.


Member Data Documentation

template<class TImageType>
double itk::LevelSetFunction< TImageType >::m_DT [static, protected]
 

Definition at line 156 of file itkLevelSetFunction.h.

template<class TImageType>
double itk::LevelSetFunction< TImageType >::m_WaveDT [static, protected]
 

Constants used in the time step calculation.

Definition at line 155 of file itkLevelSetFunction.h.


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