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

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

Reinitialize the level set to the signed distance function. More...

#include <itkReinitializeLevelSetImageFilter.h>

Inheritance diagram for itk::ReinitializeLevelSetImageFilter< TLevelSet >:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef ReinitializeLevelSetImageFilter 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

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (SetDimension, unsigned int, LevelSetType::SetDimension)
NodeContainerPointer GetOutputNarrowBand () const
virtual void SetLevelSetValue (double _arg)
virtual double GetLevelSetValue ()
virtual void SetNarrowBanding (bool _arg)
virtual bool GetNarrowBanding ()
virtual void NarrowBandingOn ()
virtual void NarrowBandingOff ()
virtual void SetInputNarrowBandwidth (double _arg)
virtual double GetInputNarrowBandwidth ()
virtual void SetOutputNarrowBandwidth (double _arg)
virtual double GetOutputNarrowBandwidth ()
void SetNarrowBandwidth (double value)
void SetInputNarrowBand (NodeContainer *ptr)
NodeContainerPointer GetInputNarrowBand () const

Static Public Member Functions

Pointer New ()

Protected Types

typedef Image< float, itkGetStaticConstMacro(SetDimension) SpeedImageType )
typedef LevelSetNeighborhoodExtractor<
TLevelSet > 
LocatorType
typedef FastMarchingImageFilter<
TLevelSet, SpeedImageType
FastMarchingImageFilterType

Protected Member Functions

 ReinitializeLevelSetImageFilter ()
 ~ReinitializeLevelSetImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void GenerateData ()
virtual void GenerateDataFull ()
virtual void GenerateDataNarrowBand ()
virtual void AllocateOutput ()
virtual void GenerateInputRequestedRegion ()
virtual void EnlargeOutputRequestedRegion (DataObject *)
void SetOutputNarrowBand (NodeContainer *ptr)

Detailed Description

template<class TLevelSet>
class itk::ReinitializeLevelSetImageFilter< TLevelSet >

Reinitialize the level set to the signed distance function.

ReinitializeLevelSetImageFilter reinitializes the input level set to the approximated signed distance function from a particular level set. The output is a level set of the same type as the input.

For some level set algorithms, it is useful to periodically reinitialize the level set function to prevent numerical accuracy problems in computing derivatives and curvature values where level sets are densely bunched together.

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

This class supports narrowbanding. If the input narrowband is provided, the algorithm will only locate the level set within the input narrowband. For the output, the reinitialize level set is only valid for a distance of OutputNarrowBandwidth / 2 of either side of the level set of interest.

Implementation of this class is based on Chapter 11 of "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Second edition, 1999.

Definition at line 55 of file itkReinitializeLevelSetImageFilter.h.


Member Typedef Documentation

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

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 63 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
typedef FastMarchingImageFilter<TLevelSet, SpeedImageType> itk::ReinitializeLevelSetImageFilter< TLevelSet >::FastMarchingImageFilterType [protected]
 

Definition at line 139 of file itkReinitializeLevelSetImageFilter.h.

Referenced by itk::ReinitializeLevelSetImageFilter< TLevelSet >::~ReinitializeLevelSetImageFilter().

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 75 of file itkReinitializeLevelSetImageFilter.h.

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

Definition at line 73 of file itkReinitializeLevelSetImageFilter.h.

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 74 of file itkReinitializeLevelSetImageFilter.h.

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

LevelSetType typedef support.

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 72 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
typedef LevelSetNeighborhoodExtractor<TLevelSet> itk::ReinitializeLevelSetImageFilter< TLevelSet >::LocatorType [protected]
 

Definition at line 138 of file itkReinitializeLevelSetImageFilter.h.

Referenced by itk::ReinitializeLevelSetImageFilter< TLevelSet >::~ReinitializeLevelSetImageFilter().

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 78 of file itkReinitializeLevelSetImageFilter.h.

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 79 of file itkReinitializeLevelSetImageFilter.h.

Referenced by itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetOutputNarrowBand().

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 77 of file itkReinitializeLevelSetImageFilter.h.

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 76 of file itkReinitializeLevelSetImageFilter.h.

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

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 62 of file itkReinitializeLevelSetImageFilter.h.

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

Standard class typedefs.

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 60 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
typedef Image<float, itkGetStaticConstMacro(SetDimension) itk::ReinitializeLevelSetImageFilter< TLevelSet >::SpeedImageType) [protected]
 

Internal typedefs. SpeedImageType defined to work around the Borland compiler's improper handling of default template parameters that use dependent non-type templates. Definition at line 137 of file itkReinitializeLevelSetImageFilter.h.

Referenced by itk::ReinitializeLevelSetImageFilter< TLevelSet >::~ReinitializeLevelSetImageFilter().

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

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

Definition at line 61 of file itkReinitializeLevelSetImageFilter.h.


Constructor & Destructor Documentation

template<class TLevelSet>
itk::ReinitializeLevelSetImageFilter< TLevelSet >::ReinitializeLevelSetImageFilter  )  [protected]
 

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

Definition at line 131 of file itkReinitializeLevelSetImageFilter.h.

References itk::ReinitializeLevelSetImageFilter< TLevelSet >::FastMarchingImageFilterType, itk::ReinitializeLevelSetImageFilter< TLevelSet >::LocatorType, and itk::ReinitializeLevelSetImageFilter< TLevelSet >::SpeedImageType.


Member Function Documentation

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::AllocateOutput  )  [protected, virtual]
 

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::EnlargeOutputRequestedRegion DataObject  )  [protected, virtual]
 

Give the process object a chance to indictate that it will produce more output than it was requested to produce. For example, many imaging filters must compute the entire output at once or can only produce output in complete slices. Such filters cannot handle smaller requested regions. These filters must provide an implementation of this method, setting the output requested region to the size they will produce. By default, a process object does not modify the size of the output requested region.

Reimplemented from itk::ProcessObject.

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

template<class TLevelSet>
void itk::ReinitializeLevelSetImageFilter< TLevelSet >::GenerateData void   )  [protected, virtual]
 

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TLevelSet >.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::GenerateDataFull  )  [protected, virtual]
 

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::GenerateDataNarrowBand  )  [protected, virtual]
 

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

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

What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that imaging filters operate differently than the classes to this point in the class hierachy. Up till now, the base assumption has been that the largest possible region will be requested of the input.

This implementation of GenerateInputRequestedRegion() only processes the inputs that are a subclass of the ImageBase<InputImageDimension>. If an input is another type of DataObject (including an Image of a different dimension), they are skipped by this method. The subclasses of ImageToImageFilter are responsible for providing an implementation of GenerateInputRequestedRegion() when there are multiple inputs of different types.

See also:
ProcessObject::GenerateInputRequestedRegion(), ImageSource::GenerateInputRequestedRegion()

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

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

Run-time type information (and related methods).

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

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

template<class TLevelSet>
NodeContainerPointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetInputNarrowBand  )  const [inline]
 

Set/Get the input narrowband. Definition at line 121 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
virtual double itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetInputNarrowBandwidth  )  [virtual]
 

Set/Get the input narrow bandwidth. The default value is 12.

template<class TLevelSet>
virtual double itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetLevelSetValue  )  [virtual]
 

Set/Get the value of the level set to be located. The default value is 0.

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

Set/Get the narrowbanding flag. By default, narrowbanding is switched off.

template<class TLevelSet>
NodeContainerPointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetOutputNarrowBand  )  const [inline]
 

Get the output narrowband. Definition at line 126 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
virtual double itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetOutputNarrowBandwidth  )  [virtual]
 

Set/Get the output narrow bandwidth. The default value is 12.

template<class TLevelSet>
itk::ReinitializeLevelSetImageFilter< TLevelSet >::itkStaticConstMacro SetDimension  ,
unsigned  int,
LevelSetType::SetDimension 
 

SetDimension enumeration.

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

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

Set/Get the narrowbanding flag. By default, narrowbanding is switched off.

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

Set/Get the narrowbanding flag. By default, narrowbanding is switched off.

template<class TLevelSet>
Pointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

Reimplemented in itk::ExtensionVelocitiesImageFilter< TLevelSet, TAuxValue, VAuxDimension >.

template<class TLevelSet>
void itk::ReinitializeLevelSetImageFilter< 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 >.

template<class TLevelSet>
void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetInputNarrowBand NodeContainer ptr  ) 
 

Set/Get the input narrowband.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetInputNarrowBandwidth double  _arg  )  [virtual]
 

Set/Get the input narrow bandwidth. The default value is 12.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetLevelSetValue double  _arg  )  [virtual]
 

Set/Get the value of the level set to be located. The default value is 0.

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

Set/Get the narrowbanding flag. By default, narrowbanding is switched off.

template<class TLevelSet>
void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetNarrowBandwidth double  value  )  [inline]
 

Set the bandwidth for both the input and output narrowband, By default, both the input and output are set to 12. Definition at line 112 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet>
void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetOutputNarrowBand NodeContainer ptr  )  [inline, protected]
 

Definition at line 149 of file itkReinitializeLevelSetImageFilter.h.

References itk::ReinitializeLevelSetImageFilter< TLevelSet >::NodeContainerPointer.

template<class TLevelSet>
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetOutputNarrowBandwidth double  _arg  )  [virtual]
 

Set/Get the output narrow bandwidth. The default value is 12.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 02:51:24 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000