ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | Static Private Attributes | List of all members
itk::VectorGradientNDAnisotropicDiffusionFunction< TImage > Class Template Reference

#include <itkVectorGradientNDAnisotropicDiffusionFunction.h>

Detailed Description

template<typename TImage>
class itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >

This class is a simple extension of the GradientNDAnisotropicDiffusionFunction to pixel types of multiple components. Vector components are diffused separately, but diffusion of each component is limited by a conductance term which depends on all components.

For more information, please see GradientNDAnisotropicDiffusionFunction.

See also
GradientNDAnisotropicDiffusionFunction
VectorCurvatureNDAnisotropicDiffusionFunction
AnisotropicDiffusionFunction

Definition at line 44 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

+ Inheritance diagram for itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >:
+ Collaboration diagram for itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >:

Public Types

using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using ScalarValueType = typename PixelType::ValueType
 
using Self = VectorGradientNDAnisotropicDiffusionFunction
 
using Superclass = VectorAnisotropicDiffusionFunction< TImage >
 
- Public Types inherited from itk::VectorAnisotropicDiffusionFunction< TImage >
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = VectorAnisotropicDiffusionFunction
 
using Superclass = AnisotropicDiffusionFunction< TImage >
 
- Public Types inherited from itk::AnisotropicDiffusionFunction< TImage >
using ConstPointer = SmartPointer< const Self >
 
using PixelrealType = typename Superclass::PixelRealType
 
using Pointer = SmartPointer< Self >
 
using Self = AnisotropicDiffusionFunction
 
using Superclass = FiniteDifferenceFunction< TImage >
 
- Public Types inherited from itk::FiniteDifferenceFunction< TImage >
using ConstPointer = SmartPointer< const Self >
 
using DefaultBoundaryConditionType = ZeroFluxNeumannBoundaryCondition< ImageType >
 
using FloatOffsetType = Vector< float, Self::ImageDimension >
 
using ImageType = TImage
 
using NeighborhoodScalesType = Vector< PixelRealType, Self::ImageDimension >
 
using NeighborhoodType = ConstNeighborhoodIterator< TImage, DefaultBoundaryConditionType >
 
using PixelRealType = double
 
using PixelType = typename ImageType::PixelType
 
using Pointer = SmartPointer< Self >
 
using RadiusType = typename ConstNeighborhoodIterator< TImage >::RadiusType
 
using Self = FiniteDifferenceFunction
 
using Superclass = LightObject
 
using TimeStepType = double
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

PixelType ComputeUpdate (const NeighborhoodType &it, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override
 
const char * GetNameOfClass () const override
 
void InitializeIteration () override
 
- Public Member Functions inherited from itk::VectorAnisotropicDiffusionFunction< TImage >
void CalculateAverageGradientMagnitudeSquared (TImage *) override
 
const char * GetNameOfClass () const override
 
- Public Member Functions inherited from itk::AnisotropicDiffusionFunction< TImage >
virtual void CalculateAverageGradientMagnitudeSquared (ImageType *)=0
 
TimeStepType ComputeGlobalTimeStep (void *) const override
 
const double & GetAverageGradientMagnitudeSquared () const
 
const double & GetConductanceParameter () const
 
void * GetGlobalDataPointer () const override
 
const char * GetNameOfClass () const override
 
const TimeStepTypeGetTimeStep () const
 
void ReleaseGlobalDataPointer (void *) const override
 
void SetAverageGradientMagnitudeSquared (const double c)
 
void SetConductanceParameter (const double c)
 
void SetTimeStep (const TimeStepType &t)
 
- Public Member Functions inherited from itk::FiniteDifferenceFunction< TImage >
virtual TimeStepType ComputeGlobalTimeStep (void *GlobalData) const=0
 
const NeighborhoodScalesType ComputeNeighborhoodScales () const
 
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))=0
 
virtual void * GetGlobalDataPointer () const=0
 
const char * GetNameOfClass () const override
 
const RadiusTypeGetRadius () const
 
void GetScaleCoefficients (PixelRealType vals[ImageDimension]) const
 
virtual void InitializeIteration ()
 
virtual void ReleaseGlobalDataPointer (void *GlobalData) const=0
 
void SetRadius (const RadiusType &r)
 
void SetScaleCoefficients (const PixelRealType vals[ImageDimension])
 
- Public Member Functions inherited from itk::LightObject
Pointer Clone () const
 
virtual Pointer CreateAnother () const
 
virtual void Delete ()
 
virtual const char * GetNameOfClass () const
 
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 Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
static constexpr unsigned int VectorDimension = Superclass::VectorDimension
 
- Static Public Attributes inherited from itk::VectorAnisotropicDiffusionFunction< TImage >
static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
static constexpr unsigned int VectorDimension = PixelType::Dimension
 
- Static Public Attributes inherited from itk::AnisotropicDiffusionFunction< TImage >
static constexpr unsigned int ImageDimension = Superclass::ImageDimension
 
- Static Public Attributes inherited from itk::FiniteDifferenceFunction< TImage >
static constexpr unsigned int ImageDimension
 

Protected Member Functions

 VectorGradientNDAnisotropicDiffusionFunction ()
 
 ~VectorGradientNDAnisotropicDiffusionFunction () override=default
 
- Protected Member Functions inherited from itk::VectorAnisotropicDiffusionFunction< TImage >
void PrintSelf (std::ostream &os, Indent indent) const override
 
 VectorAnisotropicDiffusionFunction ()=default
 
 ~VectorAnisotropicDiffusionFunction () override=default
 
- Protected Member Functions inherited from itk::AnisotropicDiffusionFunction< TImage >
 AnisotropicDiffusionFunction ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~AnisotropicDiffusionFunction () override=default
 
- Protected Member Functions inherited from itk::FiniteDifferenceFunction< TImage >
 FiniteDifferenceFunction ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 ~FiniteDifferenceFunction () override=default
 
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintSelf (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Private Attributes

SizeValueType m_Center {}
 
DerivativeOperator< ScalarValueType, Self::ImageDimensionm_DerivativeOperator {}
 
VectorNeighborhoodInnerProduct< ImageTypem_InnerProduct {}
 
ScalarValueType m_K {}
 
SizeValueType m_Stride [ImageDimension] {}
 
std::slice x_slice [ImageDimension]
 
std::slice xa_slice [ImageDimension][ImageDimension]
 
std::slice xd_slice [ImageDimension][ImageDimension]
 

Static Private Attributes

static double m_MIN_NORM
 

Additional Inherited Members

- Protected Attributes inherited from itk::FiniteDifferenceFunction< TImage >
RadiusType m_Radius
 
PixelRealType m_ScaleCoefficients [ImageDimension]
 
- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount {}
 

Member Typedef Documentation

◆ ConstPointer

template<typename TImage >
using itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::ConstPointer = SmartPointer<const Self>

◆ Pointer

template<typename TImage >
using itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::Pointer = SmartPointer<Self>

◆ ScalarValueType

template<typename TImage >
using itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::ScalarValueType = typename PixelType::ValueType

Type of a value in a vector (double, float, etc.)

Definition at line 75 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ Self

Standard class type aliases.

Definition at line 51 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ Superclass

Constructor & Destructor Documentation

◆ VectorGradientNDAnisotropicDiffusionFunction()

template<typename TImage >
itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::VectorGradientNDAnisotropicDiffusionFunction ( )
protected

◆ ~VectorGradientNDAnisotropicDiffusionFunction()

template<typename TImage >
itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::~VectorGradientNDAnisotropicDiffusionFunction ( )
overrideprotecteddefault

Member Function Documentation

◆ ComputeUpdate()

template<typename TImage >
PixelType itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::ComputeUpdate ( const NeighborhoodType it,
void *  globalData,
const FloatOffsetType offset = FloatOffsetType(0.0) 
)
overridevirtual

Compute the equation value.

Implements itk::FiniteDifferenceFunction< TImage >.

◆ GetNameOfClass()

template<typename TImage >
const char * itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::GetNameOfClass ( ) const
overridevirtual

◆ InitializeIteration()

template<typename TImage >
void itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration ( )
inlineoverridevirtual

This method is called prior to each iteration of the solver.

Reimplemented from itk::FiniteDifferenceFunction< TImage >.

Definition at line 85 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ New()

template<typename TImage >
static Pointer itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::New ( )
static

Member Data Documentation

◆ ImageDimension

template<typename TImage >
constexpr unsigned int itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::ImageDimension = Superclass::ImageDimension
staticconstexpr

Extract vector and image dimension from superclass.

Definition at line 71 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ m_Center

template<typename TImage >
SizeValueType itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_Center {}
private

◆ m_DerivativeOperator

template<typename TImage >
DerivativeOperator<ScalarValueType, Self::ImageDimension> itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_DerivativeOperator {}
private

Derivative operators.

Definition at line 105 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ m_InnerProduct

template<typename TImage >
VectorNeighborhoodInnerProduct<ImageType> itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_InnerProduct {}
private

Inner product function.

Definition at line 97 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ m_K

template<typename TImage >
ScalarValueType itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_K {}
private

Modified global average gradient magnitude term.

Definition at line 108 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ m_MIN_NORM

template<typename TImage >
double itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_MIN_NORM
staticprivate

◆ m_Stride

template<typename TImage >
SizeValueType itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::m_Stride[ImageDimension] {}
private

◆ VectorDimension

template<typename TImage >
constexpr unsigned int itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::VectorDimension = Superclass::VectorDimension
staticconstexpr

◆ x_slice

template<typename TImage >
std::slice itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::x_slice[ImageDimension]
private

Slices for the ND neighborhood.

Definition at line 100 of file itkVectorGradientNDAnisotropicDiffusionFunction.h.

◆ xa_slice

template<typename TImage >
std::slice itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::xa_slice[ImageDimension][ImageDimension]
private

◆ xd_slice

template<typename TImage >
std::slice itk::VectorGradientNDAnisotropicDiffusionFunction< TImage >::xd_slice[ImageDimension][ImageDimension]
private

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