Skip to content

itk::ParticleCurvatureEntropyGradientFunction

More...

#include <itkParticleCurvatureEntropyGradientFunction.h>

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

Protected Classes

Name
struct CrossDomainNeighborhood

Public Types

Name
typedef ParticleCurvatureEntropyGradientFunction 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 ParticleMeanCurvatureAttribute< TGradientNumericType, VDimension > MeanCurvatureCacheType
typedef shapeworks::ParticleImageDomainWithCurvature< TGradientNumericType >::VnlMatrixType VnlMatrixType
typedef ParticleCurvatureEntropyGradientFunction 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 ParticleMeanCurvatureAttribute< TGradientNumericType, VDimension > MeanCurvatureCacheType
typedef ParticleImageDomainWithCurvature< TGradientNumericType, VDimension >::VnlMatrixType VnlMatrixType

Public Functions

Name
itkTypeMacro(ParticleCurvatureEntropyGradientFunction , 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
double ComputeKappa(double mc, unsigned int d) const
virtual void AfterIteration()
virtual void BeforeIteration()
virtual double EstimateSigma(unsigned int idx, unsigned int dom, const shapeworks::ParticleDomain * domain, const PointType & pos, double initial_sigma, double precision, int & err, double & avgKappa) const
void SetMeanCurvatureCache(MeanCurvatureCacheType * s)
MeanCurvatureCacheType * GetMeanCurvatureCache()
const MeanCurvatureCacheType * GetMeanCurvatureCache() const
void SetRho(double g)
double GetRho() const
void SetSharedBoundaryWeight(double w)
double GetSharedBoundaryWeight() const
void SetSharedBoundaryEnabled(bool enabled)
bool GetSharedBoundaryEnabled() const
virtual ParticleVectorFunction< VDimension >::Pointer Clone()
itkTypeMacro(ParticleCurvatureEntropyGradientFunction , 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
double ComputeKappa(double mc, unsigned int d) const
virtual void AfterIteration()
virtual void BeforeIteration()
virtual double EstimateSigma(unsigned int , unsigned int , const typename ParticleSystemType::PointVectorType & , const std::vector< double > & , const PointType & , double , double , int & err, double & ) const
void SetMeanCurvatureCache(MeanCurvatureCacheType * s)
MeanCurvatureCacheType * GetMeanCurvatureCache()
const MeanCurvatureCacheType * GetMeanCurvatureCache() const
void SetRho(double g)
double GetRho() const

Protected Functions

Name
ParticleCurvatureEntropyGradientFunction()
virtual ~ParticleCurvatureEntropyGradientFunction()
void operator=(const ParticleCurvatureEntropyGradientFunction & )
ParticleCurvatureEntropyGradientFunction(const ParticleCurvatureEntropyGradientFunction & )
void UpdateNeighborhood(const PointType & pos, int idx, int d, double radius, const ParticleSystemType * system)
ParticleCurvatureEntropyGradientFunction()
virtual ~ParticleCurvatureEntropyGradientFunction()
void operator=(const ParticleCurvatureEntropyGradientFunction & )
ParticleCurvatureEntropyGradientFunction(const ParticleCurvatureEntropyGradientFunction & )

Protected Attributes

Name
MeanCurvatureCacheType::Pointer m_MeanCurvatureCache
unsigned int m_Counter
double m_Rho
double m_avgKappa
bool m_IsSharedBoundaryEnabled
double m_SharedBoundaryWeight
double m_CurrentSigma
std::vector< CrossDomainNeighborhood > m_CurrentNeighborhood
float m_MaxMoveFactor
ParticleSystemType::PointVectorType m_CurrentNeighborhood
std::vector< double > m_CurrentWeights

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()
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::ParticleCurvatureEntropyGradientFunction;

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.

Public Types Documentation

typedef Self

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

Standard class typedefs.

typedef Pointer

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

typedef ConstPointer

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

typedef Superclass

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

typedef GradientNumericType

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

Inherit some parent typedefs.

typedef ParticleSystemType

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

typedef VectorType

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

typedef PointType

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

typedef GradientVectorType

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

typedef MeanCurvatureCacheType

typedef ParticleMeanCurvatureAttribute<TGradientNumericType, VDimension> itk::ParticleCurvatureEntropyGradientFunction< TGradientNumericType, VDimension >::MeanCurvatureCacheType;

typedef VnlMatrixType

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

typedef Self

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

Standard class typedefs.

typedef Pointer

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

typedef ConstPointer

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

typedef Superclass

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

typedef GradientNumericType

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

Inherit some parent typedefs.

typedef ParticleSystemType

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

typedef VectorType

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

typedef PointType

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

typedef GradientVectorType

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

typedef MeanCurvatureCacheType

typedef ParticleMeanCurvatureAttribute<TGradientNumericType, VDimension> itk::ParticleCurvatureEntropyGradientFunction< TGradientNumericType, VDimension >::MeanCurvatureCacheType;

typedef VnlMatrixType

typedef ParticleImageDomainWithCurvature<TGradientNumericType, VDimension>::VnlMatrixType itk::ParticleCurvatureEntropyGradientFunction< TGradientNumericType, VDimension >::VnlMatrixType;

Public Functions Documentation

function itkTypeMacro

itkTypeMacro(
    ParticleCurvatureEntropyGradientFunction ,
    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

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

function BeforeEvaluate

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

function Energy

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

function ComputeKappa

inline double ComputeKappa(
    double mc,
    unsigned int d
) const

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 EstimateSigma

virtual double EstimateSigma(
    unsigned int idx,
    unsigned int dom,
    const shapeworks::ParticleDomain * domain,
    const PointType & pos,
    double initial_sigma,
    double precision,
    int & err,
    double & avgKappa
) const

Estimate the best sigma for Parzen windowing in a given neighborhood. The best sigma is the sigma that maximizes probability at the given point

function SetMeanCurvatureCache

inline void SetMeanCurvatureCache(
    MeanCurvatureCacheType * s
)

Access the cache of curvature-based weight values for each particle position.

function GetMeanCurvatureCache

inline MeanCurvatureCacheType * GetMeanCurvatureCache()

function GetMeanCurvatureCache

inline const MeanCurvatureCacheType * GetMeanCurvatureCache() const

function SetRho

inline void SetRho(
    double g
)

Set/Get the parameters in the kappa function.

function GetRho

inline double GetRho() const

function SetSharedBoundaryWeight

inline void SetSharedBoundaryWeight(
    double w
)

function GetSharedBoundaryWeight

inline double GetSharedBoundaryWeight() const

function SetSharedBoundaryEnabled

inline void SetSharedBoundaryEnabled(
    bool enabled
)

function GetSharedBoundaryEnabled

inline bool GetSharedBoundaryEnabled() const

function Clone

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

Reimplements: itk::ParticleEntropyGradientFunction::Clone

function itkTypeMacro

itkTypeMacro(
    ParticleCurvatureEntropyGradientFunction ,
    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

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

function BeforeEvaluate

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

function Energy

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

function ComputeKappa

inline double ComputeKappa(
    double mc,
    unsigned int d
) const

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 EstimateSigma

virtual double EstimateSigma(
    unsigned int ,
    unsigned int ,
    const typename ParticleSystemType::PointVectorType & ,
    const std::vector< double > & ,
    const PointType & ,
    double ,
    double ,
    int & err,
    double & 
) const

Estimate the best sigma for Parzen windowing in a given neighborhood. The best sigma is the sigma that maximizes probability at the given point

function SetMeanCurvatureCache

inline void SetMeanCurvatureCache(
    MeanCurvatureCacheType * s
)

Access the cache of curvature-based weight values for each particle position.

function GetMeanCurvatureCache

inline MeanCurvatureCacheType * GetMeanCurvatureCache()

function GetMeanCurvatureCache

inline const MeanCurvatureCacheType * GetMeanCurvatureCache() const

function SetRho

inline void SetRho(
    double g
)

Set/Get the parameters in the kappa function.

function GetRho

inline double GetRho() const

Protected Functions Documentation

function ParticleCurvatureEntropyGradientFunction

inline ParticleCurvatureEntropyGradientFunction()

function ~ParticleCurvatureEntropyGradientFunction

inline virtual ~ParticleCurvatureEntropyGradientFunction()

function operator=

void operator=(
    const ParticleCurvatureEntropyGradientFunction & 
)

function ParticleCurvatureEntropyGradientFunction

ParticleCurvatureEntropyGradientFunction(
    const ParticleCurvatureEntropyGradientFunction & 
)

function UpdateNeighborhood

inline void UpdateNeighborhood(
    const PointType & pos,
    int idx,
    int d,
    double radius,
    const ParticleSystemType * system
)

function ParticleCurvatureEntropyGradientFunction

inline ParticleCurvatureEntropyGradientFunction()

function ~ParticleCurvatureEntropyGradientFunction

inline virtual ~ParticleCurvatureEntropyGradientFunction()

function operator=

void operator=(
    const ParticleCurvatureEntropyGradientFunction & 
)

function ParticleCurvatureEntropyGradientFunction

ParticleCurvatureEntropyGradientFunction(
    const ParticleCurvatureEntropyGradientFunction & 
)

Protected Attributes Documentation

variable m_MeanCurvatureCache

MeanCurvatureCacheType::Pointer m_MeanCurvatureCache;

variable m_Counter

unsigned int m_Counter;

variable m_Rho

double m_Rho;

variable m_avgKappa

double m_avgKappa;

variable m_IsSharedBoundaryEnabled

bool m_IsSharedBoundaryEnabled {false};

variable m_SharedBoundaryWeight

double m_SharedBoundaryWeight {1.0};

variable m_CurrentSigma

double m_CurrentSigma;

variable m_CurrentNeighborhood

std::vector< CrossDomainNeighborhood > m_CurrentNeighborhood;

variable m_MaxMoveFactor

float m_MaxMoveFactor;

variable m_CurrentNeighborhood

ParticleSystemType::PointVectorType m_CurrentNeighborhood;

variable m_CurrentWeights

std::vector< double > m_CurrentWeights;

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