#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::BoundaryNeighborhoodType | BoundaryNeighborhoodType |
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 *GlobalData) const |
virtual void * | GetGlobalDataPointer () const |
virtual void | ReleaseGlobalDataPointer (void *GlobalData) 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 132 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 153 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 147 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 138 of file itkAnisotropicDiffusionFunction.h. |
|
|
|
Definition at line 203 of file itkAnisotropicDiffusionFunction.h. |
|
Definition at line 209 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 190 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the average gradient magnitude squared. Definition at line 182 of file itkAnisotropicDiffusionFunction.h. Referenced by itk::GradientNDAnisotropicDiffusionFunction< 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 177 of file itkAnisotropicDiffusionFunction.h. Referenced by itk::GradientNDAnisotropicDiffusionFunction< 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 195 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 170 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 211 of file itkAnisotropicDiffusionFunction.h. |
|
Does nothing. No global data is used in this class of equations. Implements itk::FiniteDifferenceFunction< TImage >. Definition at line 199 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the average gradient magnitude squared. Definition at line 184 of file itkAnisotropicDiffusionFunction.h. |
|
Set/Get the conductance parameter. The conductance parameter Definition at line 175 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 168 of file itkAnisotropicDiffusionFunction.h. |