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

itk::NormalVectorDiffusionFunction< TSparseImageType > Class Template Reference

This class defines all the necessary functionality for performing isotropic and anisotropic diffusion operations on vector neighborhoods from a sparse image. More...

#include <itkNormalVectorDiffusionFunction.h>

Inheritance diagram for itk::NormalVectorDiffusionFunction< TSparseImageType >:

Inheritance graph
[legend]
Collaboration diagram for itk::NormalVectorDiffusionFunction< TSparseImageType >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef NormalVectorDiffusionFunction Self
typedef NormalVectorFunctionBase<
TSparseImageType > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::TimeStepType TimeStepType
typedef Superclass::RadiusType RadiusType
typedef Superclass::NeighborhoodType NeighborhoodType
typedef Superclass::FloatOffsetType FloatOffsetType
typedef Superclass::IndexType IndexType
typedef Superclass::SparseImageType SparseImageType
typedef Superclass::NodeType NodeType
typedef Superclass::NodeValueType NodeValueType
typedef Superclass::NormalVectorType NormalVectorType

Public Member Functions

virtual const char * GetNameOfClass () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
void SetNormalProcessType (int npt)
int GetNormalProcessType () const
NodeValueType GetConductanceParameter () const
NodeValueType GetFluxStopConstant () const
virtual void PrecomputeSparseUpdate (NeighborhoodType &it) const
virtual NormalVectorType ComputeSparseUpdate (NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset) const
void SetConductanceParameter (NodeValueType cp)

Static Public Member Functions

Pointer New ()

Protected Member Functions

 NormalVectorDiffusionFunction ()
 ~NormalVectorDiffusionFunction ()
void PrintSelf (std::ostream &os, Indent indent) const
NodeValueType FluxStopFunction (const NodeValueType v) const

Detailed Description

template<class TSparseImageType>
class itk::NormalVectorDiffusionFunction< TSparseImageType >

This class defines all the necessary functionality for performing isotropic and anisotropic diffusion operations on vector neighborhoods from a sparse image.

This class implements the actual computations for performing isotropic and anisotropic diffusion operations on a neighborhood of unit length vectors. Moreover, this processing is intrinsic to a manifold as specified by the ManifoldNormal member variables in the nodes of the sparse image.
Since the only difference between isotropic and anisotropic diffusion is the exectution of 1 extra line of code, we have implemented both in this class and made the choice between the two depend on a parameter (see below).
PARAMETERS
The choice between is isotropic/anisotropic diffusion is made by the parameter NormalProcessType. A value of 0 corresponds to isotropic diffusion whereas a value of 1 corresponds to anisotropic diffusion. If anisotropic diffusion is chosen, the parameter ConductanceParameter should be set. This conductance parameter determines the level of feature preservation.
IMPORTANT
This class works on SparseImage neighborhoods. Before using this class please read the documentation for SparseImage. Also the documentation for ImplicitManifoldNormalVectorField class will be helpful in understanding how to use this class as a function object.

Definition at line 58 of file itkNormalVectorDiffusionFunction.h.


Member Typedef Documentation

template<class TSparseImageType>
typedef SmartPointer<const Self> itk::NormalVectorDiffusionFunction< TSparseImageType >::ConstPointer
 

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 66 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::FloatOffsetType itk::NormalVectorDiffusionFunction< TSparseImageType >::FloatOffsetType
 

A floating point offset from an image grid location. Used for interpolation among grid values in a neighborhood.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 81 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::IndexType itk::NormalVectorDiffusionFunction< TSparseImageType >::IndexType
 

The index type for the sparse image.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 82 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::NeighborhoodType itk::NormalVectorDiffusionFunction< TSparseImageType >::NeighborhoodType
 

The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 80 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::NodeType itk::NormalVectorDiffusionFunction< TSparseImageType >::NodeType
 

The node type for the sparse image.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 84 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::NodeValueType itk::NormalVectorDiffusionFunction< TSparseImageType >::NodeValueType
 

The basic floating point type for the variables.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 85 of file itkNormalVectorDiffusionFunction.h.

Referenced by itk::NormalVectorDiffusionFunction< TSparseImageType >::SetConductanceParameter(), and itk::NormalVectorDiffusionFunction< TSparseImageType >::~NormalVectorDiffusionFunction().

template<class TSparseImageType>
typedef Superclass::NormalVectorType itk::NormalVectorDiffusionFunction< TSparseImageType >::NormalVectorType
 

The vector type for the normals.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 86 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef SmartPointer<Self> itk::NormalVectorDiffusionFunction< TSparseImageType >::Pointer
 

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 65 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::RadiusType itk::NormalVectorDiffusionFunction< TSparseImageType >::RadiusType
 

Neighborhood radius type

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 79 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef NormalVectorDiffusionFunction itk::NormalVectorDiffusionFunction< TSparseImageType >::Self
 

Standard class typedef.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 63 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::SparseImageType itk::NormalVectorDiffusionFunction< TSparseImageType >::SparseImageType
 

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 83 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef NormalVectorFunctionBase<TSparseImageType> itk::NormalVectorDiffusionFunction< TSparseImageType >::Superclass
 

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 64 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
typedef Superclass::TimeStepType itk::NormalVectorDiffusionFunction< TSparseImageType >::TimeStepType
 

Typedefs from the superclass.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

Definition at line 78 of file itkNormalVectorDiffusionFunction.h.


Constructor & Destructor Documentation

template<class TSparseImageType>
itk::NormalVectorDiffusionFunction< TSparseImageType >::NormalVectorDiffusionFunction  )  [protected]
 

template<class TSparseImageType>
itk::NormalVectorDiffusionFunction< TSparseImageType >::~NormalVectorDiffusionFunction  )  [inline, protected]
 

Definition at line 143 of file itkNormalVectorDiffusionFunction.h.

References itk::NormalVectorDiffusionFunction< TSparseImageType >::NodeValueType.


Member Function Documentation

template<class TSparseImageType>
virtual NormalVectorType itk::NormalVectorDiffusionFunction< TSparseImageType >::ComputeSparseUpdate NeighborhoodType neighborhood,
void *  globalData,
const FloatOffsetType offset
const [virtual]
 

The actual update rule for the normal vectors.

Implements itk::FiniteDifferenceSparseImageFunction< TSparseImageType >.

template<class TSparseImageType>
NodeValueType itk::NormalVectorDiffusionFunction< TSparseImageType >::FluxStopFunction const NodeValueType  v  )  const [inline, protected]
 

The method called in anisotropic diffusion to inhibit diffusion across areas with large curvature.

Definition at line 148 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
NodeValueType itk::NormalVectorDiffusionFunction< TSparseImageType >::GetConductanceParameter  )  const [inline]
 

This method returns the conductance parameter.

Definition at line 115 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
NodeValueType itk::NormalVectorDiffusionFunction< TSparseImageType >::GetFluxStopConstant  )  const [inline]
 

This method returns the internal variable FluxStopConstant.

Definition at line 119 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
virtual const char* itk::NormalVectorDiffusionFunction< TSparseImageType >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

template<class TSparseImageType>
int itk::NormalVectorDiffusionFunction< TSparseImageType >::GetNormalProcessType  )  const [inline]
 

This method returns the isotropic/anisotropic filtering parameter.

Definition at line 96 of file itkNormalVectorDiffusionFunction.h.

template<class TSparseImageType>
itk::NormalVectorDiffusionFunction< TSparseImageType >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

Image dimension derived from the superclass.

Reimplemented from itk::NormalVectorFunctionBase< TSparseImageType >.

template<class TSparseImageType>
Pointer itk::NormalVectorDiffusionFunction< TSparseImageType >::New  )  [static]
 

Standard New macro.

Reimplemented from itk::LightObject.

template<class TSparseImageType>
virtual void itk::NormalVectorDiffusionFunction< TSparseImageType >::PrecomputeSparseUpdate NeighborhoodType it  )  const [virtual]
 

This function is called from LevelSetNormalImageFilter for all of the nodes to compute and store the flux vectors (first derivatives of the normal vectors. ComputeUpdateNormal then takes derivatives of the flux vectors. This way we avoid repeating the same flux computations.

Reimplemented from itk::FiniteDifferenceSparseImageFunction< TSparseImageType >.

template<class TSparseImageType>
void itk::NormalVectorDiffusionFunction< TSparseImageType >::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::NormalVectorFunctionBase< TSparseImageType >.

template<class TSparseImageType>
void itk::NormalVectorDiffusionFunction< TSparseImageType >::SetConductanceParameter NodeValueType  cp  )  [inline]
 

This method sets the conductance parameter used in anisotropic filtering. Useful values for processing 2D and 3D shapes are between 0.1 and 0.25. Lower values preserve more shape features, higher values smooth more. As the conductance parameter large, the processing becomes isotropic. Default is 0.

Definition at line 104 of file itkNormalVectorDiffusionFunction.h.

References itk::NormalVectorDiffusionFunction< TSparseImageType >::NodeValueType.

template<class TSparseImageType>
void itk::NormalVectorDiffusionFunction< TSparseImageType >::SetNormalProcessType int  npt  )  [inline]
 

This method is used to choose between isotropic/anisotropic filtering. A parameter value of 0 indicates isotropic diffusion and is the default. Parameter value 1 is anisotropic diffusion. When using anisotropic diffusion the conductance parameter should also be set.

Definition at line 92 of file itkNormalVectorDiffusionFunction.h.


The documentation for this class was generated from the following file:
Generated at Thu May 25 01:58:26 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000