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

itk::CurvatureFlowFunction< TImage > Class Template Reference
[Finite Difference Functions]

This class encapsulate the finite difference equation which drives a curvature flow denoising algorithm. More...

#include <itkCurvatureFlowFunction.h>

Inheritance diagram for itk::CurvatureFlowFunction< TImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::CurvatureFlowFunction< TImage >:

Collaboration graph
[legend]
List of all members.

[NOHEADER]

 CurvatureFlowFunction ()
 ~CurvatureFlowFunction ()

Public Types

typedef CurvatureFlowFunction Self
typedef FiniteDifferenceFunction<
TImage
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::ImageType ImageType
typedef Superclass::PixelType PixelType
typedef Superclass::RadiusType RadiusType
typedef PixelType ScalarValueType
typedef Superclass::NeighborhoodType NeighborhoodType
typedef Superclass::FloatOffsetType FloatOffsetType
typedef Superclass::TimeStepType TimeStepType

Public Member Functions

virtual const char * GetNameOfClass () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
virtual TimeStepType ComputeGlobalTimeStep (void *GlobalData) const
virtual void ReleaseGlobalDataPointer (void *GlobalData) const
void SetTimeStep (const TimeStepType &t)
const TimeStepTypeGetTimeStep () const
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))
virtual void * GetGlobalDataPointer () const

Static Public Member Functions

Pointer New ()

Detailed Description

template<class TImage>
class itk::CurvatureFlowFunction< TImage >

This class encapsulate the finite difference equation which drives a curvature flow denoising algorithm.

This class uses a zero flux Neumann boundary condition when computing derivatives near the data boundary.

This class operates as part of the finite difference solver hierarchy.

See also:
CurvatureFlowImageFilter

ZeroFluxNeumannBoundaryCondition

Definition at line 41 of file itkCurvatureFlowFunction.h.


Member Typedef Documentation

template<class TImage>
typedef SmartPointer<const Self> itk::CurvatureFlowFunction< TImage >::ConstPointer
 

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 49 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::FloatOffsetType itk::CurvatureFlowFunction< TImage >::FloatOffsetType
 

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

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 64 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::ImageType itk::CurvatureFlowFunction< TImage >::ImageType
 

Inherit some parameters from the superclass type.

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 59 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::NeighborhoodType itk::CurvatureFlowFunction< TImage >::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::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 63 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::PixelType itk::CurvatureFlowFunction< TImage >::PixelType
 

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 60 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef SmartPointer<Self> itk::CurvatureFlowFunction< TImage >::Pointer
 

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 48 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::RadiusType itk::CurvatureFlowFunction< TImage >::RadiusType
 

Neighborhood radius type

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 61 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef PixelType itk::CurvatureFlowFunction< TImage >::ScalarValueType
 

Definition at line 62 of file itkCurvatureFlowFunction.h.

Referenced by itk::CurvatureFlowFunction< TImage >::GlobalDataStruct::~GlobalDataStruct().

template<class TImage>
typedef CurvatureFlowFunction itk::CurvatureFlowFunction< TImage >::Self
 

Standard class typedefs.

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 46 of file itkCurvatureFlowFunction.h.

Referenced by itk::CurvatureFlowFunction< TImage >::~CurvatureFlowFunction().

template<class TImage>
typedef FiniteDifferenceFunction<TImage> itk::CurvatureFlowFunction< TImage >::Superclass
 

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

Definition at line 47 of file itkCurvatureFlowFunction.h.

template<class TImage>
typedef Superclass::TimeStepType itk::CurvatureFlowFunction< TImage >::TimeStepType
 

Define the TimeStepType to always be double.

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Definition at line 65 of file itkCurvatureFlowFunction.h.

Referenced by itk::CurvatureFlowFunction< TImage >::~CurvatureFlowFunction().


Constructor & Destructor Documentation

template<class TImage>
itk::CurvatureFlowFunction< TImage >::CurvatureFlowFunction  )  [protected]
 

template<class TImage>
itk::CurvatureFlowFunction< TImage >::~CurvatureFlowFunction  )  [inline, protected]
 

Definition at line 136 of file itkCurvatureFlowFunction.h.

References itk::CurvatureFlowFunction< TImage >::Self, and itk::CurvatureFlowFunction< TImage >::TimeStepType.


Member Function Documentation

template<class TImage>
virtual TimeStepType itk::CurvatureFlowFunction< TImage >::ComputeGlobalTimeStep void *  GlobalData  )  const [virtual]
 

Computes the time step for an update given a global data structure. The data used in the computation may take different forms depending on the nature of the equations. This global data cannot be kept in the instance of the equation object itself since the equation object must remain stateless for thread safety. The global data is therefore managed for each thread by the finite difference solver filters.

Currently, this function returns the user specified constant time step.

Todo:
compute timestep based on CFL condition.

Implements itk::FiniteDifferenceFunction< TImage >.

template<class TImage>
virtual PixelType itk::CurvatureFlowFunction< TImage >::ComputeUpdate const NeighborhoodType neighborhood,
void *  globalData,
const FloatOffsetType offset = FloatOffsetType(0.0)
[virtual]
 

This method computes the solution update for each pixel that does not lie on a the data set boundary.

Implements itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

template<class TImage>
virtual void* itk::CurvatureFlowFunction< TImage >::GetGlobalDataPointer  )  const [inline, virtual]
 

Returns a pointer to a global data structure that is passed to this object from the solver at each calculation. The idea is that the solver holds the state of any global values needed to calculate the time step, while the equation object performs the actual calculations. The global data should also be initialized in this method.

Implements itk::FiniteDifferenceFunction< TImage >.

Definition at line 87 of file itkCurvatureFlowFunction.h.

References itk::CurvatureFlowFunction< TImage >::GlobalDataStruct::m_MaxChange.

template<class TImage>
virtual const char* itk::CurvatureFlowFunction< TImage >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

template<class TImage>
const TimeStepType& itk::CurvatureFlowFunction< TImage >::GetTimeStep  )  const [inline]
 

Get the time step parameter

Definition at line 107 of file itkCurvatureFlowFunction.h.

template<class TImage>
itk::CurvatureFlowFunction< TImage >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

Extract superclass dimension.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

template<class TImage>
Pointer itk::CurvatureFlowFunction< TImage >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::LightObject.

Reimplemented in itk::BinaryMinMaxCurvatureFlowFunction< TImage >, and itk::MinMaxCurvatureFlowFunction< TImage >.

template<class TImage>
virtual void itk::CurvatureFlowFunction< TImage >::ReleaseGlobalDataPointer void *  GlobalData  )  const [inline, virtual]
 

When the finite difference solver filter has finished using a global data pointer, it passes it to this method, which frees the memory. The solver cannot free the memory because it does not know the type to which the pointer points.

Implements itk::FiniteDifferenceFunction< TImage >.

Definition at line 99 of file itkCurvatureFlowFunction.h.

template<class TImage>
void itk::CurvatureFlowFunction< TImage >::SetTimeStep const TimeStepType t  )  [inline]
 

Set the time step parameter

Definition at line 103 of file itkCurvatureFlowFunction.h.


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