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

itk::LevelSetImageFilter< TLevelSet > Class Template Reference
[Level Set-Based Segmentation FiltersImage Enhancement Filters]

#include <itkLevelSetImageFilter.h>

Inheritance diagram for itk::LevelSetImageFilter:

Inheritance graph
[legend]
Collaboration diagram for itk::LevelSetImageFilter< TLevelSet >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef LevelSetImageFilter Self
typedef ImageToImageFilter<
TLevelSet, TLevelSet > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef LevelSetTypeDefault<
TLevelSet > 
LevelSetType
typedef LevelSetType::LevelSetImageType LevelSetImageType
typedef LevelSetType::LevelSetPointer LevelSetPointer
typedef LevelSetType::LevelSetConstPointer LevelSetConstPointer
typedef LevelSetType::PixelType PixelType
typedef LevelSetType::NodeType NodeType
typedef LevelSetType::NodeContainer NodeContainer
typedef LevelSetType::NodeContainerPointer NodeContainerPointer
enum  { SetDimension = LevelSetType::SetDimension }

Public Methods

virtual const char * GetClassName () const
virtual void SetTimeStepSize (double _arg)
virtual double GetTimeStepSize ()
virtual bool GetNarrowBanding ()
virtual void SetNarrowBandwidth (double _arg)
virtual double GetNarrowBandwidth ()
void SetInputNarrowBand (NodeContainer *ptr)
NodeContainerPointer GetInputNarrowBand ()
virtual void SetNumberOfIterations (unsigned int _arg)
virtual unsigned int GetNumberOfIterations ()
virtual void SetNarrowBanding (bool _arg)
virtual void NarrowBandingOn ()
virtual void NarrowBandingOff ()
int GetNarrowBandSize ()

Protected Methods

 LevelSetImageFilter ()
 ~LevelSetImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void AllocateBuffers (bool outputOnly=false)
virtual void SwapBuffers ()
virtual void CopyInputToInputBuffer ()
virtual void CopyOutputBufferToOutput ()
LevelSetPointer GetInputBuffer (void)
LevelSetPointer GetOutputBuffer (void)
virtual void GenerateInputRequestedRegion ()
virtual void EnlargeOutputRequestedRegion (DataObject *output)

Detailed Description

template<class TLevelSet>
class itk::LevelSetImageFilter< TLevelSet >

LevelSetImageFilter is the abstract base class for all process objects which evolves an input level set to an output level set according to some PDE update equations. This class is templated over the level set type. Both the input and output level sets are of the same type represented as Images.

Depending on the application a level set function may correspond to iso-intensity contours of an image (e.g. for image denoising) or some signed distance function from a shape boundary or interface.

Typically, level set evolution is a iterative process. This class provides infrastructure for internal iterations. Specifically, this class maintains two buffers to keep intermediate results between iterations.

This class also provides a mechanism for narrowbanding, where only data within a narrow band of interest is processed.

This class is templated over the image type which represents the level set.

Note: All level set algorithms will eventually be reimplemented to in the Finite Difference Solver framework.

Definition at line 57 of file itkLevelSetImageFilter.h.


Member Typedef Documentation

template<class TLevelSet>
typedef SmartPointer<const Self> itk::LevelSetImageFilter< TLevelSet >::ConstPointer
 

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 65 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::LevelSetConstPointer itk::LevelSetImageFilter< TLevelSet >::LevelSetConstPointer
 

Definition at line 74 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::LevelSetImageType itk::LevelSetImageFilter< TLevelSet >::LevelSetImageType
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 72 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::LevelSetPointer itk::LevelSetImageFilter< TLevelSet >::LevelSetPointer
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 73 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetTypeDefault<TLevelSet> itk::LevelSetImageFilter< TLevelSet >::LevelSetType
 

LevelSetType typedef support.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 71 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::NodeContainer itk::LevelSetImageFilter< TLevelSet >::NodeContainer
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 77 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::NodeContainerPointer itk::LevelSetImageFilter< TLevelSet >::NodeContainerPointer
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 78 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::NodeType itk::LevelSetImageFilter< TLevelSet >::NodeType
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 76 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetType::PixelType itk::LevelSetImageFilter< TLevelSet >::PixelType
 

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 75 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef SmartPointer<Self> itk::LevelSetImageFilter< TLevelSet >::Pointer
 

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 64 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetImageFilter itk::LevelSetImageFilter< TLevelSet >::Self
 

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 62 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
typedef ImageToImageFilter<TLevelSet,TLevelSet> itk::LevelSetImageFilter< TLevelSet >::Superclass
 

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

Definition at line 63 of file itkLevelSetImageFilter.h.


Member Enumeration Documentation

template<class TLevelSet>
anonymous enum
 

SetDimension enumeration.

Enumeration values:
SetDimension 

Definition at line 81 of file itkLevelSetImageFilter.h.


Constructor & Destructor Documentation

template<class TLevelSet>
itk::LevelSetImageFilter< TLevelSet >::LevelSetImageFilter   [protected]
 

template<class TLevelSet>
itk::LevelSetImageFilter< TLevelSet >::~LevelSetImageFilter   [inline, protected]
 

Definition at line 135 of file itkLevelSetImageFilter.h.


Member Function Documentation

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::AllocateBuffers bool    outputOnly = false [protected, virtual]
 

Allocate the internal buffers for internal interations.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::CopyInputToInputBuffer   [protected, virtual]
 

Copy data from the input level set to the internal input buffer.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::CopyOutputBufferToOutput   [protected, virtual]
 

Copy data from the internal output buffer to the process buffer.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::EnlargeOutputRequestedRegion DataObject   output [protected, virtual]
 

Specify a larger than requested output region. The default is to enlarge the requested region to the largest possible. Subclasses should override this method if a different output region is desired.

See also:
ProcessObject::EnlargeOutputRequestedRegion();

Reimplemented from itk::ProcessObject.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::GenerateInputRequestedRegion   [protected, virtual]
 

Specify the required input region to satisfiy the output request. The default is to request for the largest possible region for any output. Subclasses should override this method if a different input size is desired.

See also:
ProcessObject::GenerateInputRequestedRegion()

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

template<class TLevelSet>
virtual const char* itk::LevelSetImageFilter< TLevelSet >::GetClassName   const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

template<class TLevelSet>
LevelSetPointer itk::LevelSetImageFilter< TLevelSet >::GetInputBuffer void    [inline, protected]
 

Get a pointer to the internal input buffer.

Definition at line 155 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
NodeContainerPointer itk::LevelSetImageFilter< TLevelSet >::GetInputNarrowBand   [inline]
 

Get the input narrowband.

Definition at line 124 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
virtual bool itk::LevelSetImageFilter< TLevelSet >::GetNarrowBanding   [virtual]
 

Get the narrowbanding flag.

template<class TLevelSet>
int itk::LevelSetImageFilter< TLevelSet >::GetNarrowBandSize   [inline]
 

Get the number of pixels in the narrowband.

Definition at line 113 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
virtual double itk::LevelSetImageFilter< TLevelSet >::GetNarrowBandwidth   [virtual]
 

Get the narrow bandwidth.

template<class TLevelSet>
virtual unsigned int itk::LevelSetImageFilter< TLevelSet >::GetNumberOfIterations   [virtual]
 

Get the number of iterations.

template<class TLevelSet>
LevelSetPointer itk::LevelSetImageFilter< TLevelSet >::GetOutputBuffer void    [inline, protected]
 

Get a pointer to the internal output buffer.

Definition at line 159 of file itkLevelSetImageFilter.h.

template<class TLevelSet>
virtual double itk::LevelSetImageFilter< TLevelSet >::GetTimeStepSize   [virtual]
 

Get the evolution time step size.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::NarrowBandingOff   [virtual]
 

Set the narrowbanding flag. If NarrowBanding is turned on, only the pixels in the InputNarrowBand are processed. A NarrowBand is represented as a VectorContainer of LevelSetNodes. NarrowBanding is set to false by default.

See also:
LevelSetNode

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::NarrowBandingOn   [virtual]
 

Set the narrowbanding flag. If NarrowBanding is turned on, only the pixels in the InputNarrowBand are processed. A NarrowBand is represented as a VectorContainer of LevelSetNodes. NarrowBanding is set to false by default.

See also:
LevelSetNode

template<class TLevelSet>
void itk::LevelSetImageFilter< TLevelSet >::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::ImageToImageFilter< TLevelSet, TLevelSet >.

Reimplemented in itk::GeodesicActiveContourImageFilter< TLevelSet, TEdgeImage, TDerivImage >, and itk::ShapeDetectionLevelSetFilter< TLevelSet, TEdgeImage >.

template<class TLevelSet>
void itk::LevelSetImageFilter< TLevelSet >::SetInputNarrowBand NodeContainer   ptr
 

Set the input narrowband.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::SetNarrowBanding bool    _arg [virtual]
 

Set the narrowbanding flag. If NarrowBanding is turned on, only the pixels in the InputNarrowBand are processed. A NarrowBand is represented as a VectorContainer of LevelSetNodes. NarrowBanding is set to false by default.

See also:
LevelSetNode

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::SetNarrowBandwidth double    _arg [virtual]
 

Set the narrow bandwidth. Default is 12.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::SetNumberOfIterations unsigned int    _arg [virtual]
 

Set the number of iterations. Default is 10.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::SetTimeStepSize double    _arg [virtual]
 

Set the evolution time step size. Default is 0.5. The timestep is typically algorithm and application dependent. It should be chosen to meet the CFL condition which requires that no pixels move more than one grid position at each time step.

template<class TLevelSet>
virtual void itk::LevelSetImageFilter< TLevelSet >::SwapBuffers   [protected, virtual]
 

Swap the pointers to the two internal pointers. Useful when the output of one iteration is the input to the next iteration.


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