Skip to content

itk::ParticleModifiedCotangentEntropyGradientFunction

More...

#include <itkParticleModifiedCotangentEntropyGradientFunction.h>

Inherits from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >, itk::ParticleVectorFunction< VDimension >, LightObject

Public Types

Name
typedef ParticleModifiedCotangentEntropyGradientFunction Self
typedef SmartPointer< Self > Pointer
typedef SmartPointer< const Self > ConstPointer
typedef ParticleEntropyGradientFunction< TGradientNumericType, VDimension > Superclass
typedef Superclass::GradientNumericType GradientNumericType
typedef Superclass::ParticleSystemType ParticleSystemType
typedef Superclass::VectorType VectorType
typedef Superclass::PointType PointType
typedef Superclass::GradientVectorType GradientVectorType
typedef shapeworks::ParticleImageDomainWithCurvature< TGradientNumericType >::VnlMatrixType VnlMatrixType

Public Functions

Name
itkTypeMacro(ParticleModifiedCotangentEntropyGradientFunction , ParticleEntropyGradientFunction )
itkNewMacro(Self )
itkStaticConstMacro(Dimension , unsigned int , VDimension )
virtual VectorType Evaluate(unsigned int a, unsigned int b, const ParticleSystemType * c, double & d) const
virtual VectorType Evaluate(unsigned int , unsigned int , const ParticleSystemType * , double & , double & ) const
virtual void BeforeEvaluate(unsigned int , unsigned int , const ParticleSystemType * )
virtual double Energy(unsigned int a, unsigned int b, const ParticleSystemType * c) const
virtual void AfterIteration()
virtual void BeforeIteration()
double ComputeModifiedCotangent(double rij, unsigned int d) const
double ComputeModifiedCotangentDerivative(double rij, unsigned int d) const
void ClearGlobalSigma()
void SetGlobalSigma(std::vector< double > i)
void SetGlobalSigma(double i)
virtual ParticleVectorFunction< VDimension >::Pointer Clone()

Protected Functions

Name
ParticleModifiedCotangentEntropyGradientFunction()
virtual ~ParticleModifiedCotangentEntropyGradientFunction()
void operator=(const ParticleModifiedCotangentEntropyGradientFunction & )
ParticleModifiedCotangentEntropyGradientFunction(const ParticleModifiedCotangentEntropyGradientFunction & )

Protected Attributes

Name
std::vector< double > m_GlobalSigma

Additional inherited members

Public Types inherited from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >

Name
typedef ParticleContainerArrayAttribute< double, VDimension > SigmaCacheType

Public Functions inherited from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >

Name
virtual void ResetBuffers()
virtual double EstimateSigma(unsigned int idx, const typename ParticleSystemType::PointVectorType & neighborhood, const shapeworks::ParticleDomain * domain, const std::vector< double > & weights, const PointType & pos, double initial_sigma, double precision, int & err) const
TGradientNumericType AngleCoefficient(const GradientVectorType & , const GradientVectorType & ) const
void SetMinimumNeighborhoodRadius(double s)
double GetMinimumNeighborhoodRadius() const
void SetMaximumNeighborhoodRadius(double s)
double GetMaximumNeighborhoodRadius() const
void SetFlatCutoff(double s)
double GetFlatCutoff() const
void SetNeighborhoodToSigmaRatio(double s)
double GetNeighborhoodToSigmaRatio() const
void SetSpatialSigmaCache(SigmaCacheType * s)
SigmaCacheType * GetSpatialSigmaCache()
const SigmaCacheType * GetSpatialSigmaCache() const
void ComputeAngularWeights(const PointType & , int , const typename ParticleSystemType::PointVectorType & , const shapeworks::ParticleDomain * , std::vector< double > & ) const

Protected Functions inherited from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >

Name
ParticleEntropyGradientFunction()
virtual ~ParticleEntropyGradientFunction()
ParticleEntropyGradientFunction(const ParticleEntropyGradientFunction & )

Protected Attributes inherited from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >

Name
double m_MinimumNeighborhoodRadius
double m_MaximumNeighborhoodRadius
double m_FlatCutoff
double m_NeighborhoodToSigmaRatio
SigmaCacheType::Pointer m_SpatialSigmaCache

Public Functions inherited from itk::ParticleVectorFunction< VDimension >

Name
virtual void ResetBuffers()
virtual void SetParticleSystem(ParticleSystemType * p)
virtual ParticleSystemType * GetParticleSystem() const
virtual void SetDomainNumber(unsigned int i)
virtual int GetDomainNumber() const

Protected Functions inherited from itk::ParticleVectorFunction< VDimension >

Name
ParticleVectorFunction()
virtual ~ParticleVectorFunction()
ParticleVectorFunction(const ParticleVectorFunction & )

Protected Attributes inherited from itk::ParticleVectorFunction< VDimension >

Name
ParticleSystemType * m_ParticleSystem
unsigned int m_DomainNumber

Detailed Description

template <class TGradientNumericType ,
unsigned int VDimension>
class itk::ParticleModifiedCotangentEntropyGradientFunction;

This function returns an estimate of the gradient of the entropy of a particle distribution with respect to change in position of a specific particle in that distribution. The change in normals associated with the position is also taken into account, providing an adaptive sampling of the surface with respect to both position and extrinsic surface curvature.

This function depend on modified cotangent potential as defined in Meyer's thesis rather than Gaussian potential (Cates's thesis).

Modified potential only depend on a global sigma based on target number of particles in the domain

Public Types Documentation

typedef Self

typedef ParticleModifiedCotangentEntropyGradientFunction itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Self;

Standard class typedefs.

typedef Pointer

typedef SmartPointer<Self> itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Pointer;

typedef ConstPointer

typedef SmartPointer<const Self> itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::ConstPointer;

typedef Superclass

typedef ParticleEntropyGradientFunction<TGradientNumericType, VDimension> itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Superclass;

typedef GradientNumericType

typedef Superclass::GradientNumericType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::GradientNumericType;

Inherit some parent typedefs.

typedef ParticleSystemType

typedef Superclass::ParticleSystemType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::ParticleSystemType;

typedef VectorType

typedef Superclass::VectorType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::VectorType;

typedef PointType

typedef Superclass::PointType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::PointType;

typedef GradientVectorType

typedef Superclass::GradientVectorType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::GradientVectorType;

typedef VnlMatrixType

typedef shapeworks::ParticleImageDomainWithCurvature<TGradientNumericType>::VnlMatrixType itk::ParticleModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::VnlMatrixType;

Public Functions Documentation

function itkTypeMacro

itkTypeMacro(
    ParticleModifiedCotangentEntropyGradientFunction ,
    ParticleEntropyGradientFunction 
)

function itkNewMacro

itkNewMacro(
    Self 
)

Method for creation through the object factory.

function itkStaticConstMacro

itkStaticConstMacro(
    Dimension ,
    unsigned int ,
    VDimension 
)

Dimensionality of the domain of the particle system.

function Evaluate

inline virtual VectorType Evaluate(
    unsigned int a,
    unsigned int b,
    const ParticleSystemType * c,
    double & d
) const

Reimplements: itk::ParticleEntropyGradientFunction::Evaluate

The first argument is a pointer to the particle system. The second argument is the index of the domain within that particle system. The third argument is the index of the particle location within the given domain.

function Evaluate

virtual VectorType Evaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * ,
    double & ,
    double & 
) const

Reimplements: itk::ParticleEntropyGradientFunction::Evaluate

function BeforeEvaluate

inline virtual void BeforeEvaluate(
    unsigned int ,
    unsigned int ,
    const ParticleSystemType * 
)

Reimplements: itk::ParticleVectorFunction::BeforeEvaluate

This method may be called to set up the state of the function object before a call to Evaluate. It is necessary in order to initialize certain constants and variables that may be used for calculating the Energy as well as the Gradients. Typically this is only necessary for the adaptive gradient descent algorithm.

function Energy

inline virtual double Energy(
    unsigned int a,
    unsigned int b,
    const ParticleSystemType * c
) const

Reimplements: itk::ParticleEntropyGradientFunction::Energy

function AfterIteration

inline virtual void AfterIteration()

Reimplements: itk::ParticleVectorFunction::AfterIteration

This method is called by a solver after each iteration. Subclasses may or may not implement this method.

function BeforeIteration

inline virtual void BeforeIteration()

Reimplements: itk::ParticleVectorFunction::BeforeIteration

This method is called by a solver before each iteration. Subclasses may or may not implement this method.

function ComputeModifiedCotangent

inline double ComputeModifiedCotangent(
    double rij,
    unsigned int d
) const

function ComputeModifiedCotangentDerivative

inline double ComputeModifiedCotangentDerivative(
    double rij,
    unsigned int d
) const

function ClearGlobalSigma

inline void ClearGlobalSigma()

function SetGlobalSigma

inline void SetGlobalSigma(
    std::vector< double > i
)

function SetGlobalSigma

inline void SetGlobalSigma(
    double i
)

function Clone

inline virtual ParticleVectorFunction< VDimension >::Pointer Clone()

Reimplements: itk::ParticleEntropyGradientFunction::Clone

Protected Functions Documentation

function ParticleModifiedCotangentEntropyGradientFunction

inline ParticleModifiedCotangentEntropyGradientFunction()

function ~ParticleModifiedCotangentEntropyGradientFunction

inline virtual ~ParticleModifiedCotangentEntropyGradientFunction()

function operator=

void operator=(
    const ParticleModifiedCotangentEntropyGradientFunction & 
)

function ParticleModifiedCotangentEntropyGradientFunction

ParticleModifiedCotangentEntropyGradientFunction(
    const ParticleModifiedCotangentEntropyGradientFunction & 
)

Protected Attributes Documentation

variable m_GlobalSigma

std::vector< double > m_GlobalSigma;

Updated on 2022-07-23 at 16:40:05 -0600