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

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

This class implements the fourth order level set PDE framework. More...

#include <itkSparseFieldFourthOrderLevelSetImageFilter.h>

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

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

Collaboration graph
[legend]
List of all members.

[NOHEADER]

virtual void InitializeIteration ()
 SparseFieldFourthOrderLevelSetImageFilter ()
 ~SparseFieldFourthOrderLevelSetImageFilter ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
ValueType ComputeCurvatureFromSparseImageNeighborhood (SparseImageIteratorType &neighborhood) const
void ComputeCurvatureTarget (const OutputImageType *distanceImage, SparseImageType *sparseImage) const
void ProcessNormals ()
bool ActiveLayerCheckBand () const

Public Types

typedef SparseFieldFourthOrderLevelSetImageFilter Self
typedef SparseFieldLevelSetImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::OutputImageType OutputImageType
typedef Superclass::ValueType ValueType
typedef Superclass::IndexType IndexType
typedef Superclass::LayerType LayerType
typedef NormalBandNode< OutputImageTypeNodeType
typedef SparseImage< NodeType,
itkGetStaticConstMacro(ImageDimension) 
SparseImageType )
typedef NodeType::NodeDataType NormalVectorType
typedef NeighborhoodIterator<
SparseImageType
SparseImageIteratorType
typedef ImplicitManifoldNormalVectorFilter<
OutputImageType, SparseImageType
NormalVectorFilterType
typedef NormalVectorDiffusionFunction<
SparseImageType
NormalVectorFunctionType
typedef LevelSetFunctionWithRefitTerm<
OutputImageType, SparseImageType
LevelSetFunctionType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
virtual unsigned int GetMaxRefitIteration ()
virtual void SetMaxRefitIteration (unsigned int _arg)
virtual unsigned int GetMaxNormalIteration ()
virtual void SetMaxNormalIteration (unsigned int _arg)
virtual ValueType GetCurvatureBandWidth ()
virtual void SetCurvatureBandWidth (ValueType _arg)
virtual ValueType GetRMSChangeNormalProcessTrigger ()
virtual void SetRMSChangeNormalProcessTrigger (ValueType _arg)
virtual int GetNormalProcessType ()
virtual void SetNormalProcessType (int _arg)
virtual ValueType GetNormalProcessConductance ()
virtual void SetNormalProcessConductance (ValueType _arg)
virtual void SetNormalProcessUnsharpFlag (bool _arg)
virtual bool GetNormalProcessUnsharpFlag ()
virtual void SetNormalProcessUnsharpWeight (ValueType _arg)
virtual ValueType GetNormalProcessUnsharpWeight ()
void SetLevelSetFunction (LevelSetFunctionType *lsf)
unsigned int GetMinimumNumberOfLayers () const
virtual void SetNumberOfLayers (const unsigned int n)

Detailed Description

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

This class implements the fourth order level set PDE framework.

This class adds a ProcessNormals method to SparseFieldLevelSetImageFilter class. The ProcessNormals method uses the ImplicitManifoldNormalDiffusionFilter class to generate a SparseImage of filtered normal vectors. We make a copy of the current state of the output image (also referred to as level set image) for this class and pass it to ImplicitManifoldNormalDiffusionFilter. That class computes the normal vectors to the level set image and filters them. The output is in the form of a sparse image templated with the NormalBandNode type. We then compute curvatures from that output and store them in the SparseImage as well. This SparseImage is passed onto the LevelSetFunctionWithRefitTerm filter class to be used as a target in the propagation term.
INPUT and OUTPUT
Same as SparseFieldLevelSetImageFilter
PARAMETERS
MaxRefitIteration sets the maximum number of allowable iterations between calls to ProcessNormals. The decision of when to call the ProcessNormals method is made in InitializeIteration according to a few criteria one of which is this maximum number of iterations.
MaxNormalIteration sets the maximum number of diffusion iterations on the normals to be performed by the ImplicitManifoldNormalDiffusionFilter class. Please read the documentation for that class.
CurvatureBandWidth determines the width of the band to be processed in ImplicitManifoldNormalDiffusionFilter.
RMSChangeNormalProcessTrigger provides another mechanism in InitializeIteration for calling the ProcessNormals method. Whenever the RMS change reported by SparseFieldLevelSetImageFilter falls below this parameter ProcessNormals is called regardless of whether MaxRefitIteration has been reached. This parameter could be used to speed up the algorithm; however, it can also effect the results. Use with caution. Default is 0 which does nothing.
IMPORTANT
Defaults for above parameters are set in the constructor. Users should not change these unless they have a good understanding of the algorithm.
OTHER PARAMETERS
NormalProcessType tells ImplicitManifoldNormalVectorFilter whether to use isotropic or anisotropic diffusion. A value of 0 means isotropic whereas a value of 1 means anisotropic diffusion. If this parameter is set to 1, NormalProcessConductance determines the level of detail preservation. Please read the documentation for ImplicitManifoldNormalVectorFilter and AnisotropicFourthOrderLevelSetImageFilter.
NormalProcessUnsharpFlag turns unsharp masking on/off. If this parameter is turned on, then NormalProcessUnsharpWeight should be set. Please read the documentation for ImplicitManifoldNormalVectorFilter.
IMPORTANT
Users of this class must define the Halt function.

Definition at line 155 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.


Member Typedef Documentation

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

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

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 164 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

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

Definition at line 176 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

A list type used in the algorithm.

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

Definition at line 177 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef LevelSetFunctionWithRefitTerm<OutputImageType, SparseImageType> itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::LevelSetFunctionType
 

The level set function with refitting term type. Definition at line 206 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef NormalBandNode<OutputImageType> itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::NodeType
 

The storage class used as the node type for the sparse normal vector image. Definition at line 181 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ImplicitManifoldNormalVectorFilter<OutputImageType, SparseImageType> itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::NormalVectorFilterType
 

The filter type for processing the normal vectors of the level set. Definition at line 195 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef NormalVectorDiffusionFunction<SparseImageType> itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::NormalVectorFunctionType
 

The function type for processing the normal vector neigborhood. Definition at line 199 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef NodeType::NodeDataType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::NormalVectorType
 

The normal vector type. Definition at line 188 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

Typedefs derived from the superclass.

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

Definition at line 174 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

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

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 163 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

Standard class typedefs

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

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 161 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef NeighborhoodIterator<SparseImageType> itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SparseImageIteratorType
 

The iterator type for the sparse image. Definition at line 191 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SparseImage<NodeType, itkGetStaticConstMacro(ImageDimension) itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SparseImageType)
 

The sparse image type used for processing the normal vectors.

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 185 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

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

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

Definition at line 162 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

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

The data type used in numerical computations. Derived from the output image type.

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

Definition at line 175 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

Referenced by itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::InitializeIteration().


Constructor & Destructor Documentation

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

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

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

This method first calls the Superclass InitializeIteration method. Then it determines whether ProcessNormals should be called. Definition at line 280 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.


Member Function Documentation

template<class TInputImage, class TOutputImage>
bool itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ActiveLayerCheckBand  )  const [protected]
 

This method checks whether the level set front is touching the edges of the band where curvature from the processed normal vectors has been computed. This is one of the conditions for triggering the ProcessNormals method.

template<class TInputImage, class TOutputImage>
ValueType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ComputeCurvatureFromSparseImageNeighborhood SparseImageIteratorType neighborhood  )  const [protected]
 

This method computes curvature from normal vectors stored in a sparse image neighborhood.

template<class TInputImage, class TOutputImage>
void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ComputeCurvatureTarget const OutputImageType distanceImage,
SparseImageType sparseImage
const [protected]
 

This method computes curvature from the processed normal vectors over the region specified by the CurvatureBandWidth parameter. The curvatures are stored in the sparse image.

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

Run-time type information (and related methods)

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

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetCurvatureBandWidth  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetMaxNormalIteration  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetMaxRefitIteration  )  [virtual]
 

template<class TInputImage, class TOutputImage>
unsigned int itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetMinimumNumberOfLayers  )  const [inline]
 

Compute the number of layers that must be used in SparseFieldLevelSetImageFilter to accomodate the desired normal processing band. Definition at line 232 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetNormalProcessConductance  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual int itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetNormalProcessType  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual bool itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetNormalProcessUnsharpFlag  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetNormalProcessUnsharpWeight  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual ValueType itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::GetRMSChangeNormalProcessTrigger  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::InitializeIteration  )  [inline, virtual]
 

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

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

Definition at line 253 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

References itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ValueType.

template<class TInputImage, class TOutputImage>
itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

Standard image dimension macro.

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< 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::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, and itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::ProcessNormals  )  [protected]
 

The method for processing the normal vectors.

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetCurvatureBandWidth ValueType  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetLevelSetFunction LevelSetFunctionType lsf  ) 
 

Set the level set function. Must LevelSetFunctionWithRefitTerm or a subclass.

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

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

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNormalProcessConductance ValueType  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNormalProcessType int  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNormalProcessUnsharpFlag bool  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNormalProcessUnsharpWeight ValueType  _arg  )  [virtual]
 

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetNumberOfLayers const unsigned int  n  )  [inline, virtual]
 

This overrides SparseFieldLevelSetImageFilter's SetNumberOfLayers to make sure we have enough layers to do what we need.

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

Definition at line 240 of file itkSparseFieldFourthOrderLevelSetImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual void itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >::SetRMSChangeNormalProcessTrigger ValueType  _arg  )  [virtual]
 


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