itk::ParticleOmegaGradientFunction
#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