#include <itkGradientNDAnisotropicDiffusionFunction.h>
This class implements an N-dimensional version of the classic Perona-Malik anisotropic diffusion equation for scalar-valued images. See itkAnisotropicDiffusionFunction for an overview of the anisotropic diffusion framework and equation. For additional information see [86].
\[C(\mathbf{x}) = e^{-(\frac{\parallel \nabla U(\mathbf{x}) \parallel}{K})^2}\]
.
Definition at line 56 of file itkGradientNDAnisotropicDiffusionFunction.h.
Public Member Functions | |
PixelType | ComputeUpdate (const NeighborhoodType &it, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override |
virtual::itk::LightObject::Pointer | CreateAnother () const |
const char * | GetNameOfClass () const override |
void | InitializeIteration () override |
![]() | |
void | CalculateAverageGradientMagnitudeSquared (TImage *) override |
const char * | GetNameOfClass () const override |
![]() | |
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
const double & | GetAverageGradientMagnitudeSquared () const |
const double & | GetConductanceParameter () const |
void * | GetGlobalDataPointer () const override |
const TimeStepType & | GetTimeStep () const |
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
void | SetAverageGradientMagnitudeSquared (const double c) |
void | SetConductanceParameter (const double c) |
void | SetTimeStep (const TimeStepType &t) |
![]() | |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
const RadiusType & | GetRadius () const |
const RadiusType & | GetRadius () const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
void | SetRadius (const RadiusType &r) |
void | SetRadius (const RadiusType &r) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
![]() | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension |
static constexpr unsigned int | ImageDimension |
Protected Member Functions | |
GradientNDAnisotropicDiffusionFunction () | |
~GradientNDAnisotropicDiffusionFunction () override=default | |
![]() | |
ScalarAnisotropicDiffusionFunction ()=default | |
~ScalarAnisotropicDiffusionFunction () override=default | |
![]() | |
AnisotropicDiffusionFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~AnisotropicDiffusionFunction () override=default | |
![]() | |
FiniteDifferenceFunction () | |
FiniteDifferenceFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FiniteDifferenceFunction () override=default | |
~FiniteDifferenceFunction () override=default | |
![]() | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Protected Attributes | |
NeighborhoodSizeValueType | m_Center {} |
DerivativeOperator< PixelType, Self::ImageDimension > | m_DerivativeOperator {} |
NeighborhoodInnerProduct< ImageType > | m_InnerProduct {} |
PixelType | m_K {} |
NeighborhoodSizeValueType | m_Stride [ImageDimension] {} |
std::slice | x_slice [ImageDimension] |
std::slice | xa_slice [ImageDimension][ImageDimension] |
std::slice | xd_slice [ImageDimension][ImageDimension] |
![]() | |
RadiusType | m_Radius |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
Static Protected Attributes | |
static double | m_MIN_NORM |
using itk::GradientNDAnisotropicDiffusionFunction< TImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 65 of file itkGradientNDAnisotropicDiffusionFunction.h.
using itk::GradientNDAnisotropicDiffusionFunction< TImage >::NeighborhoodSizeValueType = SizeValueType |
Definition at line 82 of file itkGradientNDAnisotropicDiffusionFunction.h.
using itk::GradientNDAnisotropicDiffusionFunction< TImage >::Pointer = SmartPointer<Self> |
Definition at line 64 of file itkGradientNDAnisotropicDiffusionFunction.h.
using itk::GradientNDAnisotropicDiffusionFunction< TImage >::Self = GradientNDAnisotropicDiffusionFunction |
Standard class type aliases.
Definition at line 62 of file itkGradientNDAnisotropicDiffusionFunction.h.
using itk::GradientNDAnisotropicDiffusionFunction< TImage >::Superclass = ScalarAnisotropicDiffusionFunction<TImage> |
Definition at line 63 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
overridevirtual |
Compute the equation value.
Implements itk::FiniteDifferenceFunction< TImage >.
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::LightObject.
|
overridevirtual |
Reimplemented from itk::AnisotropicDiffusionFunction< TImage >.
References GradientNDAnisotropicDiffusionFunction().
|
inlineoverridevirtual |
This method is called prior to each iteration of the solver.
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Definition at line 95 of file itkGradientNDAnisotropicDiffusionFunction.h.
References itk::AnisotropicDiffusionFunction< TImage >::GetAverageGradientMagnitudeSquared(), itk::AnisotropicDiffusionFunction< TImage >::GetConductanceParameter(), and m_K.
|
static |
Method for creation through the object factory.
Referenced by itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >::GradientAnisotropicDiffusionImageFilter().
|
staticconstexpr |
Inherit some parameters from the superclass type.
Definition at line 85 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 119 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Derivative operator.
Definition at line 114 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Inner product function.
Definition at line 106 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Modified global average gradient magnitude term.
Definition at line 117 of file itkGradientNDAnisotropicDiffusionFunction.h.
Referenced by InitializeIteration().
|
staticprotected |
Definition at line 122 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 120 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Slices for the ND neighborhood.
Definition at line 109 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 110 of file itkGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 111 of file itkGradientNDAnisotropicDiffusionFunction.h.