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

itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > Class Template Reference
[Image Enhancement Filters]

#include <itkAnisotropicDiffusionImageFilter.h>

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

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef AnisotropicDiffusionImageFilter Self
typedef DenseFiniteDifferenceImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::InputImageType InputImageType
typedef Superclass::OutputImageType OutputImageType
typedef Superclass::UpdateBufferType UpdateBufferType
typedef Superclass::PixelType PixelType
typedef Superclass::TimeStepType TimeStepType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
virtual void SetNumberOfIterations (unsigned int _arg)
virtual unsigned int GetNumberOfIterations ()
virtual void SetTimeStep (TimeStepType _arg)
virtual TimeStepType GetTimeStep ()
virtual void SetConductanceParameter (double _arg)
virtual double GetConductanceParameter ()
virtual void SetConductanceScalingUpdateInterval (unsigned int _arg)
virtual unsigned int GetConductanceScalingUpdateInterval ()
virtual void SetConductanceScalingParameter (double _arg)
virtual double GetConductanceScalingParameter ()
void SetFixedAverageGradientMagnitude (double a)
virtual double GetFixedAverageGradientMagnitude ()

Protected Member Functions

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

Protected Attributes

bool m_GradientMagnitudeIsFixed

Detailed Description

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

This filter is the base class for a set of filters that iteratively diffuse images by solving non-linear partial differential equations based on the classical heat equation. For an overview of the diffusion algorithm, see AnisotropicImageFunction. AnisotropicDiffusionImageFilter is a subclass of itkFiniteDifferenceImageFilter and is part of the finite difference solver hierarchy.

Inputs and Outputs
This is an image-to-image filter. The requirements for data types and dimensionality of the input and output are defined by subclasses. In general, these filters expect images of real-valued types. This means pixel types of floats, doubles, or a user-defined type with floating point accuracy and arithmetic operations.
Parameters
Set/GetNumberOfIterations specifies the number of iterations (time-step updates) that the solver will perform to produce a solution image. The appropriate number of iterations is dependent on the application and the image being processed. As a general rule, the more iterations performed, the more diffused the image will become.
Set/GetTimeStep sets the time step to be used for each iteration (update). This parameter is described in detail in itkAnisotropicDiffusionFunction. The time step is constrained at run-time to keep the solution stable. In general, the time step should be at or below 1/2^N, where N is the dimensionality of the image.
Set/GetConductanceParameter set a common parameter used by subclasses of itkAnisotropicDiffusionFunction. See itkAnisotropicDiffusionFunction for detailed information.
How to use this filter
AnisotropicDiffusionImageFilter must be subclassed to be used. This class implements a generic framework for other diffusion filters.
See also:
GradientAnisotropicDiffusionImageFilter

VectorGradientAnisotropicDiffusionImageFilter

CurvatureAnisotropicDiffusionImageFilter

VectorCurvatureAnisotropicDiffusionImageFilter

Definition at line 70 of file itkAnisotropicDiffusionImageFilter.h.


Member Typedef Documentation

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

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

Definition at line 79 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::InputImageType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::InputImageType
 

Capture information from the superclass.

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

Definition at line 86 of file itkAnisotropicDiffusionImageFilter.h.

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

Some convenient typedefs.

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

Definition at line 87 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::PixelType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::PixelType
 

The pixel type of the output image will be used in computations. Inherited from the superclass.

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

Definition at line 96 of file itkAnisotropicDiffusionImageFilter.h.

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

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

Definition at line 78 of file itkAnisotropicDiffusionImageFilter.h.

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

Standard class typedefs.

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

Definition at line 75 of file itkAnisotropicDiffusionImageFilter.h.

Referenced by itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::~AnisotropicDiffusionImageFilter().

template<class TInputImage, class TOutputImage>
typedef DenseFiniteDifferenceImageFilter<TInputImage, TOutputImage> itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::Superclass
 

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

Definition at line 77 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::TimeStepType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::TimeStepType
 

The value type of a time step. Inherited from the superclass.

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

Definition at line 97 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef Superclass::UpdateBufferType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::UpdateBufferType
 

The container type for the update buffer.

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

Definition at line 88 of file itkAnisotropicDiffusionImageFilter.h.


Constructor & Destructor Documentation

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

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

Definition at line 145 of file itkAnisotropicDiffusionImageFilter.h.

References itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::Self.


Member Function Documentation

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

Run-time type information.

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetConductanceParameter  )  [virtual]
 

Set/Get the conductance parameter governing sensitivity of the conductance equation.

template<class TInputImage, class TOutputImage>
virtual double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetConductanceScalingParameter  )  [virtual]
 

The following parameters are not used at this time. Setting them will have no effect on the output

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetConductanceScalingUpdateInterval  )  [virtual]
 

Set/Get the interval at which a new scaling for the conductance term is calculated.

template<class TInputImage, class TOutputImage>
virtual double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetFixedAverageGradientMagnitude  )  [virtual]
 

Supplies a fixed value for the average gradient magnitude of the image to the AnisotropicDiffusionFunction at each iteration. The average gradient magnitude is normally calculated over the entire image before each iteration and is used as a scaling factor in the calculations of change at a pixel. This method is useful in streaming applications to avoid block artifacts by overriding the normal gradient magnitude calculation (i.e. all image chunks are scaled uniformly).

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetNumberOfIterations  )  [virtual]
 

Set/Get the number of iterations that the filter will run.

template<class TInputImage, class TOutputImage>
virtual TimeStepType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetTimeStep  )  [virtual]
 

Set/Get the time step for each iteration

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

Supplies the halting criteria for this class of filters. The algorithm will stop after a user-specified number of iterations.

Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::InitializeIteration  )  [protected, virtual]
 

Prepare for the iteration process.

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

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

Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.

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

Reimplemented in itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, and itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::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::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >.

Reimplemented in itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::SetConductanceParameter double  _arg  )  [virtual]
 

Set/Get the conductance parameter governing sensitivity of the conductance equation.

template<class TInputImage, class TOutputImage>
virtual void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::SetConductanceScalingParameter double  _arg  )  [virtual]
 

The following parameters are not used at this time. Setting them will have no effect on the output

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

Set/Get the interval at which a new scaling for the conductance term is calculated.

template<class TInputImage, class TOutputImage>
void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::SetFixedAverageGradientMagnitude double  a  )  [inline]
 

Supplies a fixed value for the average gradient magnitude of the image to the AnisotropicDiffusionFunction at each iteration. The average gradient magnitude is normally calculated over the entire image before each iteration and is used as a scaling factor in the calculations of change at a pixel. This method is useful in streaming applications to avoid block artifacts by overriding the normal gradient magnitude calculation (i.e. all image chunks are scaled uniformly). Definition at line 134 of file itkAnisotropicDiffusionImageFilter.h.

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

Set/Get the number of iterations that the filter will run.

template<class TInputImage, class TOutputImage>
virtual void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::SetTimeStep TimeStepType  _arg  )  [virtual]
 

Set/Get the time step for each iteration


Member Data Documentation

template<class TInputImage, class TOutputImage>
bool itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_GradientMagnitudeIsFixed [protected]
 

Definition at line 155 of file itkAnisotropicDiffusionImageFilter.h.


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