#include <itkAnisotropicDiffusionFunction.h>
Inheritance diagram for itk::AnisotropicDiffusionFunction:
Public Types | |
typedef AnisotropicDiffusionFunction | Self |
typedef FiniteDifferenceFunction< TImage > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::ImageType | ImageType |
typedef Superclass::PixelType | PixelType |
typedef Superclass::RadiusType | RadiusType |
typedef Superclass::NeighborhoodType | NeighborhoodType |
typedef Superclass::TimeStepType | TimeStepType |
typedef Superclass::FloatOffsetType | FloatOffsetType |
Public Methods | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension) | |
virtual void | CalculateAverageGradientMagnitudeSquared (ImageType *)=0 |
virtual TimeStepType | ComputeGlobalTimeStep (void *) const |
virtual void * | GetGlobalDataPointer () const |
virtual void | ReleaseGlobalDataPointer (void *) const |
void | SetTimeStep (const TimeStepType &t) |
const TimeStepType & | GetTimeStep () const |
void | SetConductanceParameter (const double &c) |
const double & | GetConductanceParameter () const |
const double & | GetAverageGradientMagnitudeSquared () const |
void | SetAverageGradientMagnitudeSquared (const double &c) |
Protected Methods | |
AnisotropicDiffusionFunction () | |
~AnisotropicDiffusionFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
with constant and initial condition , the original image.
Extending to the case where is not a constant, but a function of , gives
Our choice of now varies the strength of diffusion anisotropically. Typically, is chosen as some function of image features to selectively preserve or remove those features. For example, edges tend to be preserved over smoother regions where is inversely scaled according to gradient magnitude as in
.
Several variations on the scheme presented above are implemented in Itk as subclasses of this equation. The equations are solved using an iterative, finite forward difference technique (see the FiniteDifferenceImageFilter class).
Definition at line 134 of file itkAnisotropicDiffusionFunction.h.
|
|
Reimplemented from itk::FiniteDifferenceFunction< TImage >. Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, and itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >. Definition at line 154 of file itkAnisotropicDiffusionFunction.h. |
|
Inherit some parameters from the superclass type 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 >. Definition at line 149 of file itkAnisotropicDiffusionFunction.h. |
|
|
|
|
|
Standard class typedefs. 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 >. Definition at line 140 of file itkAnisotropicDiffusionFunction.h. |
|
|
|
Definition at line 204 of file itkAnisotropicDiffusionFunction.h. |
|
Definition at line 210 of file itkAnisotropicDiffusionFunction.h. |
|
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. |
|
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 191 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the average gradient magnitude squared. Definition at line 183 of file itkAnisotropicDiffusionFunction.h. Referenced by itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), itk::GradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), and itk::CurvatureNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(). |
|
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 >. |
|
Set/Get the conductance parameter. The conductance parameter Definition at line 178 of file itkAnisotropicDiffusionFunction.h. Referenced by itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), itk::GradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(), and itk::CurvatureNDAnisotropicDiffusionFunction< TImage >::InitializeIteration(). |
|
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 196 of file itkAnisotropicDiffusionFunction.h. |
|
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 171 of file itkAnisotropicDiffusionFunction.h. |
|
Inherit some parameters from the superclass type Reimplemented in itk::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::ScalarAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >, and itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >. |
|
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::CurvatureNDAnisotropicDiffusionFunction< TImage >, itk::GradientNDAnisotropicDiffusionFunction< TImage >, itk::ScalarAnisotropicDiffusionFunction< TImage >, itk::VectorAnisotropicDiffusionFunction< TImage >, and itk::VectorCurvatureNDAnisotropicDiffusionFunction< TImage >. Definition at line 212 of file itkAnisotropicDiffusionFunction.h. |
|
Does nothing. No global data is used in this class of equations. Implements itk::FiniteDifferenceFunction< TImage >. Definition at line 200 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the average gradient magnitude squared. Definition at line 185 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the conductance parameter. The conductance parameter Definition at line 176 of file itkAnisotropicDiffusionFunction.h. |
|
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 169 of file itkAnisotropicDiffusionFunction.h. |