itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction
#include <itkParticleConstrainedModifiedCotangentEntropyGradientFunction.h>
Inherits from itk::ParticleEntropyGradientFunction< TGradientNumericType, VDimension >, itk::ParticleVectorFunction< VDimension >, LightObject
Public Types
Name | |
---|---|
typedef ParticleConstrainedModifiedCotangentEntropyGradientFunction | 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(ParticleConstrainedModifiedCotangentEntropyGradientFunction , 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() |
void | EstimateGlobalSigma(const ParticleSystemType * system) |
double | ComputeModifiedCotangent(double rij) const |
double | ComputeModifiedCotangentDerivative(double rij) const |
void | SetDomainsPerShape(int i) |
int | GetDomainsPerShape() const |
void | SetRunStatus(int i) |
int | GetRunStatus() const |
void | SetDiagnosticsOutputPrefix(const std::string s) |
virtual ParticleVectorFunction< VDimension >::Pointer | Clone() |
Protected Functions
Protected Attributes
Name | |
---|---|
unsigned int | m_Counter |
ParticleSystemType::PointVectorType | m_CurrentNeighborhood |
std::vector< double > | m_CurrentWeights |
std::string | m_diagnostics_prefix |
int | m_DomainsPerShape |
int | m_RunStatus |
double | m_GlobalSigma |
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() |
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::ParticleConstrainedModifiedCotangentEntropyGradientFunction;
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 which defined the neighborhood of each particle compared to a sigma per particle in case of Gaussian potential.
This class also constrains the particle distribution according to the provided spheres (in or out) ?!!!
Public Types Documentation
typedef Self
typedef ParticleConstrainedModifiedCotangentEntropyGradientFunction itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Self;
Standard class typedefs.
typedef Pointer
typedef SmartPointer<Self> itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Pointer;
typedef ConstPointer
typedef SmartPointer<const Self> itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::ConstPointer;
typedef Superclass
typedef ParticleEntropyGradientFunction<TGradientNumericType, VDimension> itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::Superclass;
typedef GradientNumericType
typedef Superclass::GradientNumericType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::GradientNumericType;
Inherit some parent typedefs.
typedef ParticleSystemType
typedef Superclass::ParticleSystemType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::ParticleSystemType;
typedef VectorType
typedef Superclass::VectorType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::VectorType;
typedef PointType
typedef Superclass::PointType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::PointType;
typedef GradientVectorType
typedef Superclass::GradientVectorType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::GradientVectorType;
typedef VnlMatrixType
typedef shapeworks::ParticleImageDomainWithCurvature<TGradientNumericType>::VnlMatrixType itk::ParticleConstrainedModifiedCotangentEntropyGradientFunction< TGradientNumericType, VDimension >::VnlMatrixType;
Public Functions Documentation
function itkTypeMacro
itkTypeMacro(
ParticleConstrainedModifiedCotangentEntropyGradientFunction ,
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 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 EstimateGlobalSigma
void EstimateGlobalSigma(
const ParticleSystemType * system
)
Estimate the best sigma for Parzen windowing. This is almost twice the average distance to the nearest 6 neigbhors (hexagonal packing)
function ComputeModifiedCotangent
inline double ComputeModifiedCotangent(
double rij
) const
function ComputeModifiedCotangentDerivative
inline double ComputeModifiedCotangentDerivative(
double rij
) const
function SetDomainsPerShape
inline void SetDomainsPerShape(
int i
)
function GetDomainsPerShape
inline int GetDomainsPerShape() const
function SetRunStatus
inline void SetRunStatus(
int i
)
function GetRunStatus
inline int GetRunStatus() const
function SetDiagnosticsOutputPrefix
inline void SetDiagnosticsOutputPrefix(
const std::string s
)
function Clone
inline virtual ParticleVectorFunction< VDimension >::Pointer Clone()
Reimplements: itk::ParticleEntropyGradientFunction::Clone
Protected Functions Documentation
function ParticleConstrainedModifiedCotangentEntropyGradientFunction
inline ParticleConstrainedModifiedCotangentEntropyGradientFunction()
function ~ParticleConstrainedModifiedCotangentEntropyGradientFunction
inline virtual ~ParticleConstrainedModifiedCotangentEntropyGradientFunction()
function operator=
void operator=(
const ParticleConstrainedModifiedCotangentEntropyGradientFunction &
)
function ParticleConstrainedModifiedCotangentEntropyGradientFunction
ParticleConstrainedModifiedCotangentEntropyGradientFunction(
const ParticleConstrainedModifiedCotangentEntropyGradientFunction &
)
Protected Attributes Documentation
variable m_Counter
unsigned int m_Counter;
variable m_CurrentNeighborhood
ParticleSystemType::PointVectorType m_CurrentNeighborhood;
variable m_CurrentWeights
std::vector< double > m_CurrentWeights;
variable m_diagnostics_prefix
std::string m_diagnostics_prefix;
variable m_DomainsPerShape
int m_DomainsPerShape;
variable m_RunStatus
int m_RunStatus;
variable m_GlobalSigma
double m_GlobalSigma;
variable m_MaxMoveFactor
float m_MaxMoveFactor;
Updated on 2022-07-23 at 16:40:05 -0600