ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Member Functions | Private Attributes
itk::ReinitializeLevelSetImageFilter< TLevelSet > Class Template Reference

#include <itkReinitializeLevelSetImageFilter.h>

+ Inheritance diagram for itk::ReinitializeLevelSetImageFilter< TLevelSet >:
+ Collaboration diagram for itk::ReinitializeLevelSetImageFilter< TLevelSet >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef
LevelSetType::LevelSetConstPointer 
LevelSetConstPointer
typedef
LevelSetType::LevelSetImageType 
LevelSetImageType
typedef
LevelSetType::LevelSetPointer 
LevelSetPointer
typedef LevelSetTypeDefault
< TLevelSet > 
LevelSetType
typedef LevelSetType::NodeContainer NodeContainer
typedef
LevelSetType::NodeContainerPointer 
NodeContainerPointer
typedef LevelSetType::NodeType NodeType
typedef LevelSetType::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef
ReinitializeLevelSetImageFilter 
Self
typedef ImageToImageFilter
< TLevelSet, TLevelSet > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
NodeContainerPointer GetInputNarrowBand () const
virtual const char * GetNameOfClass () const
NodeContainerPointer GetOutputNarrowBand () const
void SetInputNarrowBand (NodeContainer *ptr)
 typedef (Concept::AdditiveOperators< PixelType, double >) LevelSetDoubleAdditiveOperatorsCheck
 typedef (Concept::OStreamWritable< PixelType >) LevelSetOStreamWritableCheck
virtual void SetLevelSetValue (double _arg)
virtual double GetLevelSetValue () const
virtual void SetNarrowBanding (bool _arg)
virtual bool GetNarrowBanding () const
virtual void NarrowBandingOn ()
virtual void NarrowBandingOff ()
virtual void SetInputNarrowBandwidth (double _arg)
virtual double GetInputNarrowBandwidth () const
virtual void SetOutputNarrowBandwidth (double _arg)
virtual double GetOutputNarrowBandwidth () const
void SetNarrowBandwidth (double value)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int SetDimension = LevelSetType::SetDimension

Protected Types

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

Protected Member Functions

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

Private Member Functions

void operator= (const Self &)
 ReinitializeLevelSetImageFilter (const Self &)

Private Attributes

NodeContainerPointer m_InputNarrowBand
double m_InputNarrowBandwidth
double m_LevelSetValue
LocatorType::Pointer m_Locator
FastMarchingImageFilterType::Pointer m_Marcher
bool m_NarrowBanding
NodeContainerPointer m_OutputNarrowBand
double m_OutputNarrowBandwidth

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
template<class TLevelSet >
typedef FastMarchingImageFilter< TLevelSet, SpeedImageType > itk::ReinitializeLevelSetImageFilter< TLevelSet >::FastMarchingImageFilterType [protected]

Definition at line 73 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 69 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
typedef LevelSetNeighborhoodExtractor< TLevelSet > itk::ReinitializeLevelSetImageFilter< TLevelSet >::LocatorType [protected]
template<class TLevelSet >
typedef SmartPointer< Self > itk::ReinitializeLevelSetImageFilter< TLevelSet >::Pointer
template<class TLevelSet >
typedef Image< float, itkGetStaticConstMacro(SetDimension) > itk::ReinitializeLevelSetImageFilter< TLevelSet >::SpeedImageType [protected]
template<class TLevelSet >
typedef ImageToImageFilter< TLevelSet, TLevelSet > itk::ReinitializeLevelSetImageFilter< TLevelSet >::Superclass

Constructor & Destructor Documentation

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

End concept checking

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

End concept checking

Definition at line 140 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
itk::ReinitializeLevelSetImageFilter< TLevelSet >::ReinitializeLevelSetImageFilter ( const Self ) [private]

Member Function Documentation

template<class TLevelSet >
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::AllocateOutput ( ) [protected, virtual]
template<class TLevelSet >
virtual::itk::LightObject::Pointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

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]
template<class TLevelSet >
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::GenerateDataNarrowBand ( ) [protected, virtual]
template<class TLevelSet >
virtual void itk::ReinitializeLevelSetImageFilter< TLevelSet >::GenerateInputRequestedRegion ( void  ) [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 >
NodeContainerPointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetInputNarrowBand ( ) const [inline]

Definition at line 122 of file itkReinitializeLevelSetImageFilter.h.

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

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

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

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

template<class TLevelSet >
virtual const char* itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetNameOfClass ( ) 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 >
virtual bool itk::ReinitializeLevelSetImageFilter< TLevelSet >::GetNarrowBanding ( ) const [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 ( ) const [virtual]

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

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 >
static 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 >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

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

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

template<class TLevelSet >
void itk::ReinitializeLevelSetImageFilter< TLevelSet >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

End concept checking

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 161 of file itkReinitializeLevelSetImageFilter.h.

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

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

template<class TLevelSet >
itk::ReinitializeLevelSetImageFilter< TLevelSet >::typedef ( Concept::AdditiveOperators< PixelType, double >  )

Begin concept checking This class requires LevelSetDoubleAdditiveOperatorsCheck in the form of ( Concept::AdditiveOperators< PixelType, double > )

template<class TLevelSet >
itk::ReinitializeLevelSetImageFilter< TLevelSet >::typedef ( Concept::OStreamWritable< PixelType )

This class requires LevelSetOStreamWritableCheck in the form of ( Concept::OStreamWritable< PixelType > )

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


Member Data Documentation

template<class TLevelSet >
NodeContainerPointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_InputNarrowBand [private]

Definition at line 176 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
double itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_InputNarrowBandwidth [private]

Definition at line 174 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
double itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_LevelSetValue [private]

Definition at line 167 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
LocatorType::Pointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_Locator [private]
template<class TLevelSet >
FastMarchingImageFilterType::Pointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_Marcher [private]
template<class TLevelSet >
bool itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_NarrowBanding [private]

Definition at line 173 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
NodeContainerPointer itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_OutputNarrowBand [private]

Definition at line 177 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
double itk::ReinitializeLevelSetImageFilter< TLevelSet >::m_OutputNarrowBandwidth [private]

Definition at line 175 of file itkReinitializeLevelSetImageFilter.h.

template<class TLevelSet >
const unsigned int itk::ReinitializeLevelSetImageFilter< TLevelSet >::SetDimension = LevelSetType::SetDimension [static]

SetDimension enumeration.

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

Definition at line 83 of file itkReinitializeLevelSetImageFilter.h.


The documentation for this class was generated from the following file: