ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkAnisotropicDiffusionFunction.h>
This class is a virtual base for anisotropic diffusion function objects. It is a component object in the finite difference solver hierarchy (see itkFiniteDifferenceImageFilter for an overview). AnisotropicDiffusionFunction objects are used by AnisotropicDiffusionImageFilter objects to perform non-linear diffusion on itk::Images.
Anisotropic diffusion methods are formulated to reduce noise (or unwanted detail) in images while preserving specific image features. For many applications, there is an assumption that light-dark transitions (edges) are interesting. Standard isotropic diffusion methods move and blur light-dark boundaries. Anisotropic diffusion methods are formulated to specifically preserve edges.
Anisotropic diffusion methods can be thought of as tools for calculating multi-scale descriptions of images. Embed an image in a higher dimensional function of derived images, . This higher dimensional function represents the solution of the heat diffusion equation,
.
Definition at line 138 of file itkAnisotropicDiffusionFunction.h.
typedef SmartPointer< const Self > itk::AnisotropicDiffusionFunction< TImage >::ConstPointer |
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 147 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::FloatOffsetType itk::AnisotropicDiffusionFunction< 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::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, and itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >.
Definition at line 159 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::ImageType itk::AnisotropicDiffusionFunction< TImage >::ImageType |
Inherit some parameters from the superclass type
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 150 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::NeighborhoodType itk::AnisotropicDiffusionFunction< 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::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 157 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::PixelRealType itk::AnisotropicDiffusionFunction< TImage >::PixelrealType |
Definition at line 155 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::PixelType itk::AnisotropicDiffusionFunction< TImage >::PixelType |
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 154 of file itkAnisotropicDiffusionFunction.h.
typedef SmartPointer< Self > itk::AnisotropicDiffusionFunction< TImage >::Pointer |
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 146 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::RadiusType itk::AnisotropicDiffusionFunction< TImage >::RadiusType |
Neighborhood radius type
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 156 of file itkAnisotropicDiffusionFunction.h.
typedef AnisotropicDiffusionFunction itk::AnisotropicDiffusionFunction< TImage >::Self |
Standard class typedefs.
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 144 of file itkAnisotropicDiffusionFunction.h.
typedef FiniteDifferenceFunction< TImage > itk::AnisotropicDiffusionFunction< TImage >::Superclass |
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 145 of file itkAnisotropicDiffusionFunction.h.
typedef Superclass::TimeStepType itk::AnisotropicDiffusionFunction< TImage >::TimeStepType |
Define the TimeStepType to always be double.
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 158 of file itkAnisotropicDiffusionFunction.h.
itk::AnisotropicDiffusionFunction< TImage >::AnisotropicDiffusionFunction | ( | ) | [inline, protected] |
Definition at line 227 of file itkAnisotropicDiffusionFunction.h.
itk::AnisotropicDiffusionFunction< TImage >::~AnisotropicDiffusionFunction | ( | ) | [inline, protected] |
Definition at line 234 of file itkAnisotropicDiffusionFunction.h.
itk::AnisotropicDiffusionFunction< TImage >::AnisotropicDiffusionFunction | ( | const Self & | ) | [private] |
virtual void itk::AnisotropicDiffusionFunction< TImage >::CalculateAverageGradientMagnitudeSquared | ( | ImageType * | ) | [pure virtual] |
This method is called before each iteration. It calculates a scalar value that is the average of the gradient magnitude squared at each pixel in the output image (intermediate solution). The average gradient magnitude value is typically used in the anisotropic diffusion equations to calibrate the conductance term.
Implemented in itk::VectorAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
virtual TimeStepType itk::AnisotropicDiffusionFunction< TImage >::ComputeGlobalTimeStep | ( | void * | ) | const [inline, virtual] |
Returns the time step supplied by the user. We don't need to use the global data supplied since we are returning a fixed value.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 208 of file itkAnisotropicDiffusionFunction.h.
const double& itk::AnisotropicDiffusionFunction< TImage >::GetAverageGradientMagnitudeSquared | ( | ) | const [inline] |
Set/Get the average gradient magnitude squared.
Definition at line 196 of file itkAnisotropicDiffusionFunction.h.
const double& itk::AnisotropicDiffusionFunction< TImage >::GetConductanceParameter | ( | ) | const [inline] |
Definition at line 190 of file itkAnisotropicDiffusionFunction.h.
virtual void* itk::AnisotropicDiffusionFunction< TImage >::GetGlobalDataPointer | ( | ) | const [inline, virtual] |
The anisotropic diffusion classes don't use this particular parameter so it's safe to return a null value.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 215 of file itkAnisotropicDiffusionFunction.h.
virtual const char* itk::AnisotropicDiffusionFunction< TImage >::GetNameOfClass | ( | ) | const [virtual] |
Run-time type information (and related methods)
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::ScalarAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, and itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >.
const TimeStepType& itk::AnisotropicDiffusionFunction< TImage >::GetTimeStep | ( | ) | const [inline] |
Definition at line 179 of file itkAnisotropicDiffusionFunction.h.
void itk::AnisotropicDiffusionFunction< TImage >::operator= | ( | const Self & | ) | [private] |
Mutex lock to protect modification to the reference count
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
void itk::AnisotropicDiffusionFunction< TImage >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [inline, 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::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, and itk::VectorAnisotropicDiffusionFunction< TImage >.
Definition at line 236 of file itkAnisotropicDiffusionFunction.h.
virtual void itk::AnisotropicDiffusionFunction< TImage >::ReleaseGlobalDataPointer | ( | void * | ) | const [inline, virtual] |
Does nothing. No global data is used in this class of equations.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 221 of file itkAnisotropicDiffusionFunction.h.
void itk::AnisotropicDiffusionFunction< TImage >::SetAverageGradientMagnitudeSquared | ( | const double & | c | ) | [inline] |
Definition at line 201 of file itkAnisotropicDiffusionFunction.h.
void itk::AnisotropicDiffusionFunction< TImage >::SetConductanceParameter | ( | const double & | c | ) | [inline] |
Set/Get the conductance parameter. The conductance parameter.
Definition at line 185 of file itkAnisotropicDiffusionFunction.h.
void itk::AnisotropicDiffusionFunction< TImage >::SetTimeStep | ( | const TimeStepType & | t | ) | [inline] |
Set/Get the time step. For this class of anisotropic diffusion filters, the time-step is supplied by the user and remains fixed for all updates.
Definition at line 174 of file itkAnisotropicDiffusionFunction.h.
const unsigned int itk::AnisotropicDiffusionFunction< TImage >::ImageDimension = Superclass::ImageDimension [static] |
Inherit some parameters from the superclass type
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >, and itk::ScalarAnisotropicDiffusionFunction< TImage >.
Definition at line 162 of file itkAnisotropicDiffusionFunction.h.
double itk::AnisotropicDiffusionFunction< TImage >::m_AverageGradientMagnitudeSquared [private] |
Definition at line 248 of file itkAnisotropicDiffusionFunction.h.
double itk::AnisotropicDiffusionFunction< TImage >::m_ConductanceParameter [private] |
Definition at line 249 of file itkAnisotropicDiffusionFunction.h.
TimeStepType itk::AnisotropicDiffusionFunction< TImage >::m_TimeStep [private] |
Definition at line 250 of file itkAnisotropicDiffusionFunction.h.