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

#include <itkAnisotropicDiffusionImageFilter.h>

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

List of all members.

Public Types

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

Public Member Functions

virtual double GetFixedAverageGradientMagnitude () const
virtual const char * GetNameOfClass () const
virtual void SetTimeStep (TimeStepType _arg)
virtual TimeStepType GetTimeStep () const
virtual void SetConductanceParameter (double _arg)
virtual double GetConductanceParameter () const
virtual void SetConductanceScalingUpdateInterval (unsigned int _arg)
virtual unsigned int GetConductanceScalingUpdateInterval () const
virtual void SetConductanceScalingParameter (double _arg)
virtual double GetConductanceScalingParameter () const
void SetFixedAverageGradientMagnitude (double a)

Static Public Attributes

static const unsigned int ImageDimension = Superclass::ImageDimension

Protected Member Functions

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

Protected Attributes

bool m_GradientMagnitudeIsFixed

Private Member Functions

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

Private Attributes

double m_ConductanceParameter
double m_ConductanceScalingParameter
unsigned int m_ConductanceScalingUpdateInterval
double m_FixedAverageGradientMagnitude
TimeStepType m_TimeStep

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 73 of file itkAnisotropicDiffusionImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::ConstPointer
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 85 of file itkAnisotropicDiffusionImageFilter.h.

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

Superclass typedefs.

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

Definition at line 89 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 98 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef AnisotropicDiffusionImageFilter itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::Self
template<class TInputImage , class TOutputImage >
typedef DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::Superclass
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 99 of file itkAnisotropicDiffusionImageFilter.h.

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

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 142 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::AnisotropicDiffusionImageFilter ( const Self ) [private]

Member Function Documentation

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

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

template<class TInputImage , class TOutputImage >
virtual double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetConductanceScalingParameter ( ) const [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 ( ) const [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 ( ) const [virtual]
template<class TInputImage , class TOutputImage >
virtual const char* itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]
template<class TInputImage , class TOutputImage >
virtual TimeStepType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GetTimeStep ( ) const [virtual]

Set/Get the time step for each iteration

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

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

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

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

template<class TInputImage , class TOutputImage >
void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

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

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

template<class TInputImage , class TOutputImage >
void itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]
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 131 of file itkAnisotropicDiffusionImageFilter.h.

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 >
const unsigned int itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::ImageDimension = Superclass::ImageDimension [static]
template<class TInputImage , class TOutputImage >
double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_ConductanceParameter [private]

Definition at line 157 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_ConductanceScalingParameter [private]

Definition at line 158 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
unsigned int itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_ConductanceScalingUpdateInterval [private]

Definition at line 159 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
double itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_FixedAverageGradientMagnitude [private]

Definition at line 160 of file itkAnisotropicDiffusionImageFilter.h.

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

Definition at line 152 of file itkAnisotropicDiffusionImageFilter.h.

template<class TInputImage , class TOutputImage >
TimeStepType itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::m_TimeStep [private]

Definition at line 162 of file itkAnisotropicDiffusionImageFilter.h.


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