ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage > Class Template Reference

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

#include <itkIsotropicFourthOrderLevelSetImageFilter.h>

Inheritance diagram for itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >:
Collaboration diagram for itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >:

List of all members.

Public Types

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

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual unsigned int GetMaxFilterIteration () const
virtual const char * GetNameOfClass () const
virtual void SetMaxFilterIteration (unsigned int _arg)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

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

Protected Attributes

FunctionType::Pointer m_Function
unsigned int m_MaxFilterIteration

Private Member Functions

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

Detailed Description

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

This class implements the 4th-order level set isotropic 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 isotropic surface smoothing algorithm. A feature preserving anisotropic variant of this algorithm is implemented in AnisotropicFourthOrderLevelSetImageFilter.
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.

Definition at line 74 of file itkIsotropicFourthOrderLevelSetImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef LevelSetFunctionWithRefitTerm< TOutputImage, SparseImageType > itk::IsotropicFourthOrderLevelSetImageFilter< 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 98 of file itkIsotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef FunctionType::RadiusType itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::RadiusType

The radius type for the neighborhoods.

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

Definition at line 101 of file itkIsotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef IsotropicFourthOrderLevelSetImageFilter itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::Self
template<class TInputImage , class TOutputImage >
typedef Superclass::SparseImageType itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SparseImageType
template<class TInputImage , class TOutputImage >
typedef SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage > itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::IsotropicFourthOrderLevelSetImageFilter ( ) [protected]
template<class TInputImage , class TOutputImage >
itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::~IsotropicFourthOrderLevelSetImageFilter ( ) [inline, protected]
template<class TInputImage , class TOutputImage >
itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::IsotropicFourthOrderLevelSetImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::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::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual unsigned int itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetMaxFilterIteration ( ) const [virtual]
template<class TInputImage , class TOutputImage >
virtual const char* itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods)

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

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

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

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

Definition at line 117 of file itkIsotropicFourthOrderLevelSetImageFilter.h.

template<class TInputImage , class TOutputImage >
static Pointer itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::New ( ) [static]
template<class TInputImage , class TOutputImage >
void itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::operator= ( const Self ) [private]

The RMS change calculated from each update. Can be used by a subclass to determine halting criteria. Valid only for the previous iteration, not during the current iteration. Calculated in ApplyUpdate. This flag tells the solver whether or not to interpolate for the actual surface location when calculating change at each active layer node. By default this is turned on. Subclasses which do not sample propagation (speed), advection, or curvature terms should turn this flag off.

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

template<class TInputImage , class TOutputImage >
virtual void itk::IsotropicFourthOrderLevelSetImageFilter< 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::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetMaxFilterIteration ( unsigned int  _arg) [virtual]

Member Data Documentation

template<class TInputImage , class TOutputImage >
FunctionType::Pointer itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::m_Function [protected]
template<class TInputImage , class TOutputImage >
unsigned int itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::m_MaxFilterIteration [protected]

The number of iterations for which this filter will run.

Definition at line 114 of file itkIsotropicFourthOrderLevelSetImageFilter.h.


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