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

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

This class implements the 4th-order level set anisotropic diffusion (smoothing) PDE. More...

#include <itkAnisotropicFourthOrderLevelSetImageFilter.h>

Inheritance diagram for itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >:

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef AnisotropicFourthOrderLevelSetImageFilter Self
typedef SparseFieldFourthOrderLevelSetImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::SparseImageType SparseImageType
typedef LevelSetFunctionWithRefitTerm<
TOutputImage, SparseImageType
FunctionType
typedef FunctionType::RadiusType RadiusType

Public Member Functions

virtual const char * GetClassName () const
virtual unsigned int GetMaxFilterIteration ()
virtual void SetMaxFilterIteration (unsigned int _arg)

Static Public Member Functions

Pointer New ()

Protected Member Functions

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

Protected Attributes

FunctionType::Pointer m_Function
unsigned int m_MaxFilterIteration

Detailed Description

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

This class implements the 4th-order level set anisotropic diffusion (smoothing) PDE.

INPUT and OUTPUT
This is a volume to volume filter; however, it is meant to process (smooth) surfaces. The input surface is an isosurface of the input volume. The isosurface value to be processed can be set by calling SetIsoSurfaceValue (default is 0). The output surface is the 0-isosurface of the output volume, regardless of the input isosurface value. To visualize the input/output surfaces to this filter a mesh extraction method such as marching cubes can be used.
The 4th-order level set PDE framework is proposed as an alternative to 2nd order PDEs. By order we mean the order of differentiation of the level set image function required to compute derivatives for updating the image. For instance, the popular curvature flow uses 2nd-order derivatives of the level set image; hence, it is a 2nd order PDE.
2nd-order curvature flow can be used by itself to smooth surfaces as a post-processing filter or it can be used with other PDE terms such as a Canny edge term that attracts the surface to strong edges in a data image. Curvature flow smoothes surfaces by making the surface move in the direction that will decrease surface area.
The 4th-order PDE framework provides an improvement over curvature flow. Instead of making the surface move to decrease surface area it makes the surface move to decrease total curvature. Similar to curvature flow, these PDEs can be used alone or in conjunction with data terms. The 4th-order PDE framework is implemented in SparseFieldFourthOrderLevelSetImageFilter. This filter class, which is derived from that, uses the 4th-order PDE by itself to implement an anisotropic surface smoothing algorithm. This is a feature preserving surface processing algorithm that smoothes surfaces but will preserve certain features (creases, edges, other sharp features) depending on the NormalProcessConductanceParameter.
PARAMETERS
As mentioned before, the IsoSurfaceValue parameter chooses which isosurface of the input to process. The MaxFilterIterations parameter determine the number of iterations for which this filter will run. The more iterations, the more smoothing. NormalProcessConductanceParameter controls the amount of feature preservation. Its units are in curvature. Reasonable values for almost all surface are in the range 0.1-0.25 . The shape of the surface where the total curvature is above the value of this parameter will tend to stay the same (be preserved) or even be sharpened. The lower the value, the more feature preservation. Notice the difference between the number of iterations parameter and the conductance parameter: for a given conductance parameter, surface features with high enough curvature will be preserved even if the number of iterations is set to be extremely large.

Definition at line 82 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.


Member Typedef Documentation

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

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

Definition at line 92 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef LevelSetFunctionWithRefitTerm<TOutputImage,SparseImageType> itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::FunctionType
 

The level set function class with a refit term that forces the curvature of the moving front to match a prescribed curvature image. Definition at line 106 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

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

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

Definition at line 91 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef FunctionType::RadiusType itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::RadiusType
 

The radius type for the neighborhoods. Definition at line 109 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

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

Standard class typedefs

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

Definition at line 88 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::SparseImageType itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SparseImageType
 

The sparse image type used in LevelSetFunctionWithRefitTerm

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

Definition at line 102 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SparseFieldFourthOrderLevelSetImageFilter<TInputImage, TOutputImage> itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::Superclass
 

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

Definition at line 90 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.


Constructor & Destructor Documentation

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

template<class TInputImage, class TOutputImage>
itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::~AnisotropicFourthOrderLevelSetImageFilter  )  [inline, protected]
 

Definition at line 116 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.


Member Function Documentation

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

Run-time type information (and related methods)

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

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetMaxFilterIteration  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual bool itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::Halt  )  [inline, protected, virtual]
 

This filter halts when the iteration count reaches the specified count.

Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.

Definition at line 126 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
Pointer itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::New  )  [static]
 

Standard new macro

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

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

This method first calls the Superclass InitializeIteration method. Then it determines whether ProcessNormals should be called.

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

template<class TInputImage, class TOutputImage>
virtual void itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetMaxFilterIteration unsigned int  _arg  )  [virtual]
 


Member Data Documentation

template<class TInputImage, class TOutputImage>
FunctionType::Pointer itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::m_Function [protected]
 

The LevelSetFunctionWithRefitTerm object. Definition at line 120 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
unsigned int itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::m_MaxFilterIteration [protected]
 

The number of iterations for which this filter will run. Definition at line 123 of file itkAnisotropicFourthOrderLevelSetImageFilter.h.


The documentation for this class was generated from the following file:
Generated at Sat Mar 31 02:35:56 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000