Skip to content

itk::ParticleOmegaGradientFunction

More...

#include <itkParticleOmegaGradientFunction.h>

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

Public Types

Name
typedef ParticleOmegaGradientFunction 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

Public Functions

Name
itkTypeMacro(ParticleOmegaGradientFunction , 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, double planeDist) 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 & , unsigned int , unsigned int ) const
void SetMeanCurvatureCache(MeanCurvatureCacheType * s)
MeanCurvatureCacheType * GetMeanCurvatureCache()
const MeanCurvatureCacheType * GetMeanCurvatureCache() const
void SetRho(double g)
double GetRho() const
virtual ParticleVectorFunction< VDimension >::Pointer Clone()

Protected Functions

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

Protected Attributes

Name
MeanCurvatureCacheType::Pointer m_MeanCurvatureCache
unsigned int m_Counter
double m_Rho
double m_avgKappa
double m_CurrentSigma
ParticleSystemType::PointVectorType m_CurrentNeighborhood
std::vector< double > m_CurrentWeights
std::vector< itk::Point< double, VDimension > > planePts
std::vector< itk::Point< double, VDimension > > spherePts
std::vector< double > CToP
float m_MaxMoveFactor

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::ParticleOmegaGradientFunction;

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 ParticleOmegaGradientFunction itk::ParticleOmegaGradientFunction< TGradientNumericType, VDimension >::Self;

Standard class typedefs.

typedef Pointer

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

typedef ConstPointer

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

typedef Superclass

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

typedef GradientNumericType

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

Inherit some parent typedefs.

typedef ParticleSystemType

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

typedef VectorType

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

typedef PointType

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

typedef GradientVectorType

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

typedef MeanCurvatureCacheType

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

typedef VnlMatrixType

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

Public Functions Documentation

function itkTypeMacro

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

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 ComputeKappa

inline double ComputeKappa(
    double mc,
    unsigned int d,
    double planeDist
) 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 & ,
    unsigned int ,
    unsigned int 
) 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 Clone

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

Reimplements: itk::ParticleEntropyGradientFunction::Clone

Protected Functions Documentation

function ParticleOmegaGradientFunction

inline ParticleOmegaGradientFunction()

function ~ParticleOmegaGradientFunction

inline virtual ~ParticleOmegaGradientFunction()

function operator=

void operator=(
    const ParticleOmegaGradientFunction & 
)

function ParticleOmegaGradientFunction

ParticleOmegaGradientFunction(
    const ParticleOmegaGradientFunction & 
)

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_CurrentSigma

double m_CurrentSigma;

variable m_CurrentNeighborhood

ParticleSystemType::PointVectorType m_CurrentNeighborhood;

variable m_CurrentWeights

std::vector< double > m_CurrentWeights;

variable planePts

std::vector< itk::Point< double, VDimension > > planePts;

variable spherePts

std::vector< itk::Point< double, VDimension > > spherePts;

variable CToP

std::vector< double > CToP;

variable m_MaxMoveFactor

float m_MaxMoveFactor;

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