DGtal  1.2.0
Public Types | Public Member Functions | Private Attributes
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor > Class Template Reference

Aim: This class implement an Integral Invariant estimator which computes for each surfel the covariance matrix of the intersection of the shape with a ball of given radius centered on the surfel. More...

#include <DGtal/geometry/surfaces/estimation/IntegralInvariantCovarianceEstimator.h>

Public Types

typedef IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor > Self
 
typedef TKSpace KSpace
 
typedef TPointPredicate PointPredicate
 
typedef TCovarianceMatrixFunctor CovarianceMatrixFunctor
 
typedef KSpace::Space Space
 
typedef HyperRectDomain< SpaceDomain
 
typedef Space::Point Point
 
typedef Space::RealPoint RealPoint
 
typedef Space::RealVector RealVector
 
typedef DigitalSetSelector< Domain, BIG_DS+HIGH_VAR_DS >::Type DigitalSet
 
typedef KSpace::SCell Spel
 
typedef KSpace::Surfel Surfel
 
typedef KSpace::SurfelSet SurfelSet
 
typedef SurfelSet::const_iterator ConstIteratorKernel
 
typedef CovarianceMatrixFunctor::Quantity Quantity
 The returned type of the estimator, depends on the functor. More...
 
typedef int Value
 The type used for convolutions. More...
 
typedef functors::PointFunctorFromPointPredicateAndDomain< PointPredicate, Domain, unsigned int > ShapePointFunctor
 
typedef FunctorOnCells< ShapePointFunctor, KSpaceShapeSpelFunctor
 
typedef functors::ConstValueCell< Value, SpelKernelSpelFunctor
 
typedef ImplicitBall< SpaceKernelSupport
 
typedef EuclideanShapesCSG< KernelSupport, KernelSupportEuclideanMinus
 
typedef GaussDigitizer< Space, KernelSupportDigitalShapeKernel
 
typedef GaussDigitizer< Space, EuclideanMinusDigitalShape
 
typedef DigitalSurfaceConvolver< ShapeSpelFunctor, KernelSpelFunctor, KSpace, DigitalShapeKernelConvolver
 
typedef Convolver::PairIterators PairIterators
 
typedef Convolver::CovarianceMatrix Matrix
 
typedef Matrix::Component Component
 
typedef double Scalar
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CCellularGridSpaceND< KSpace >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< PointPredicate >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CCellFunctor< ShapeSpelFunctor >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CUnaryFunctor< CovarianceMatrixFunctor, Matrix, Quantity >))
 
 BOOST_STATIC_ASSERT ((concepts::ConceptUtils::SameType< typename Convolver::CovarianceMatrix, typename CovarianceMatrixFunctor::Argument >::value))
 
 IntegralInvariantCovarianceEstimator (CovarianceMatrixFunctor fct=CovarianceMatrixFunctor())
 
 IntegralInvariantCovarianceEstimator (ConstAlias< KSpace > K, ConstAlias< PointPredicate > aPointPredicate, CovarianceMatrixFunctor fct=CovarianceMatrixFunctor())
 
 ~IntegralInvariantCovarianceEstimator ()
 
 IntegralInvariantCovarianceEstimator (const Self &other)
 
Selfoperator= (const Self &other)
 
void clear ()
 
Scalar h () const
 
void attach (ConstAlias< KSpace > K, ConstAlias< PointPredicate > aPointPredicate)
 
void setParams (const double dRadius)
 
template<typename SurfelConstIterator >
void init (const double _h, SurfelConstIterator itb, SurfelConstIterator ite)
 
template<typename SurfelConstIterator >
Quantity eval (SurfelConstIterator it) const
 
template<typename OutputIterator , typename SurfelConstIterator >
OutputIterator eval (SurfelConstIterator itb, SurfelConstIterator ite, OutputIterator result) const
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Private Attributes

CovarianceMatrixFunctor myFct
 The covariance matrix functor that transforms the II covariance matrix into a quantity. More...
 
const KernelSpelFunctor myKernelFunctor
 Kernel functor (on Spel) More...
 
std::vector< PairIteratorsmyKernels
 array of begin/end iterator of shifting masks. More...
 
std::vector< DigitalSet * > myKernelsSet
 Array of shifting masks. Size = 9 for each shifting (0-adjacent and full kernel included) More...
 
CountedPtr< KernelSupportmyKernel
 Euclidean kernel. More...
 
CountedPtr< DigitalShapeKernelmyDigKernel
 Digital kernel. More...
 
CountedConstPtrOrConstPtr< PointPredicatemyPointPredicate
 Smart pointer (if required) on a point predicate. More...
 
CountedPtr< DomainmyShapeDomain
 Smart pointer on domain
More...
 
CountedPtr< ShapePointFunctormyShapePointFunctor
 Smart pointer on functor point -> {0,1}. More...
 
CountedPtr< ShapeSpelFunctormyShapeSpelFunctor
 Smart pointer on functor spel -> {0,1}. More...
 
CountedPtr< ConvolvermyConvolver
 Convolver. More...
 
Scalar myH
 precision of the grid More...
 
Scalar myRadius
 "digital" radius of the kernel (but may be non integer). More...
 

Detailed Description

template<typename TKSpace, typename TPointPredicate, typename TCovarianceMatrixFunctor>
class DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >

Aim: This class implement an Integral Invariant estimator which computes for each surfel the covariance matrix of the intersection of the shape with a ball of given radius centered on the surfel.

Description of template class 'IntegralInvariantCovarianceEstimator'

[26]

The algorithm we propose uses a kernel (2D: Ball2D, 3D: Ball3D) that is moved along the surface. The covariance matrix of this kernel intersected with the shape carries local geometric information. It can be used to compute normal and curvature directions, and curvature values also. Theorical multigrid convergence is proved, with a convergence speed of O(h^1/3) with hypothesis about the shape geometry and the convolution kernel radius. Experimental results confirm the multigrid convergence.

Optimization is available when we give a range of 0-adjacent surfels to the estimator. Note that you should use IntegralInvariantVolumeEstimator instead when trying to estimate the 2D curvature or the mean curvature.

Template Parameters
TKSpacea model of CCellularGridSpaceND, the cellular space in which the shape is defined.
TPointPredicatea model of concepts::CPointPredicate, a predicate Point -> bool that defines a digital shape as a characteristic function.
TCovarianceMatrixFunctora model of functor Matrix -> Quantity, that defines how the covariance matrix computed by the Integral Invariant estimator is transformed into e.g. a normal direction, a curvature, etc. Models include IIGeometricFunctors::IINormalDirectionFunctor, IIGeometricFunctors::IITangentDirectionFunctor, IIGeometricFunctors::IIFirstPrincipalDirectionFunctor, IIGeometricFunctors::IISecondPrincipalDirectionFunctor.
Note
In opposition to IntegralInvariantMeanCurvatureEstimator and IntegralInvariantGaussianCurvatureEstimator, this class is parameterized by a point predicate instead of a functor spel -> {0,1}. The two latter classes should evolve as this one in a further release.
See also
testIntegralInvariantCovarianceEstimator.cpp

Definition at line 115 of file IntegralInvariantCovarianceEstimator.h.

Member Typedef Documentation

◆ Component

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Matrix::Component DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Component

Definition at line 160 of file IntegralInvariantCovarianceEstimator.h.

◆ ConstIteratorKernel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef SurfelSet::const_iterator DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::ConstIteratorKernel

Definition at line 135 of file IntegralInvariantCovarianceEstimator.h.

◆ Convolver

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef DigitalSurfaceConvolver<ShapeSpelFunctor, KernelSpelFunctor, KSpace, DigitalShapeKernel> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Convolver

Definition at line 157 of file IntegralInvariantCovarianceEstimator.h.

◆ CovarianceMatrixFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef TCovarianceMatrixFunctor DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::CovarianceMatrixFunctor

Definition at line 121 of file IntegralInvariantCovarianceEstimator.h.

◆ DigitalSet

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef DigitalSetSelector<Domain, BIG_DS + HIGH_VAR_DS>::Type DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::DigitalSet

Definition at line 131 of file IntegralInvariantCovarianceEstimator.h.

◆ DigitalShape

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef GaussDigitizer< Space, EuclideanMinus > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::DigitalShape

Definition at line 154 of file IntegralInvariantCovarianceEstimator.h.

◆ DigitalShapeKernel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef GaussDigitizer< Space, KernelSupport > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::DigitalShapeKernel

Definition at line 153 of file IntegralInvariantCovarianceEstimator.h.

◆ Domain

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef HyperRectDomain<Space> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Domain

Definition at line 127 of file IntegralInvariantCovarianceEstimator.h.

◆ EuclideanMinus

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef EuclideanShapesCSG< KernelSupport, KernelSupport > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::EuclideanMinus

Definition at line 152 of file IntegralInvariantCovarianceEstimator.h.

◆ KernelSpelFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef functors::ConstValueCell<Value, Spel> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::KernelSpelFunctor

Definition at line 150 of file IntegralInvariantCovarianceEstimator.h.

◆ KernelSupport

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef ImplicitBall<Space> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::KernelSupport

Definition at line 151 of file IntegralInvariantCovarianceEstimator.h.

◆ KSpace

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef TKSpace DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::KSpace

Definition at line 119 of file IntegralInvariantCovarianceEstimator.h.

◆ Matrix

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Convolver::CovarianceMatrix DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Matrix

Definition at line 159 of file IntegralInvariantCovarianceEstimator.h.

◆ PairIterators

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Convolver::PairIterators DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::PairIterators

Definition at line 158 of file IntegralInvariantCovarianceEstimator.h.

◆ Point

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Space::Point DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Point

Definition at line 128 of file IntegralInvariantCovarianceEstimator.h.

◆ PointPredicate

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef TPointPredicate DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::PointPredicate

Definition at line 120 of file IntegralInvariantCovarianceEstimator.h.

◆ Quantity

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef CovarianceMatrixFunctor::Quantity DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Quantity

The returned type of the estimator, depends on the functor.

Definition at line 138 of file IntegralInvariantCovarianceEstimator.h.

◆ RealPoint

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Space::RealPoint DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::RealPoint

Definition at line 129 of file IntegralInvariantCovarianceEstimator.h.

◆ RealVector

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef Space::RealVector DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::RealVector

Definition at line 130 of file IntegralInvariantCovarianceEstimator.h.

◆ Scalar

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef double DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Scalar

Definition at line 161 of file IntegralInvariantCovarianceEstimator.h.

◆ Self

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Self

Definition at line 118 of file IntegralInvariantCovarianceEstimator.h.

◆ ShapePointFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef functors::PointFunctorFromPointPredicateAndDomain< PointPredicate, Domain, unsigned int > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::ShapePointFunctor

A wrapper around point predicate (functor Point -> bool) that transforms it into a functor Point -> unsigned int (0 or 1).

Definition at line 144 of file IntegralInvariantCovarianceEstimator.h.

◆ ShapeSpelFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef FunctorOnCells< ShapePointFunctor, KSpace > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::ShapeSpelFunctor

Adapts the a functor Point -> unsigned int (0 or 1) to a functor Cell -> unsigned int (0 ot 1), where Cell is a spel. Needed by DigitalSurfaceConvolver.

Definition at line 147 of file IntegralInvariantCovarianceEstimator.h.

◆ Space

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef KSpace::Space DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Space

Definition at line 126 of file IntegralInvariantCovarianceEstimator.h.

◆ Spel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef KSpace::SCell DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Spel

Definition at line 132 of file IntegralInvariantCovarianceEstimator.h.

◆ Surfel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef KSpace::Surfel DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Surfel

Definition at line 133 of file IntegralInvariantCovarianceEstimator.h.

◆ SurfelSet

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef KSpace::SurfelSet DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::SurfelSet

Definition at line 134 of file IntegralInvariantCovarianceEstimator.h.

◆ Value

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
typedef int DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::Value

The type used for convolutions.

Definition at line 140 of file IntegralInvariantCovarianceEstimator.h.

Constructor & Destructor Documentation

◆ IntegralInvariantCovarianceEstimator() [1/3]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::IntegralInvariantCovarianceEstimator ( CovarianceMatrixFunctor  fct = CovarianceMatrixFunctor())

Default constructor. The object is invalid. The user needs to call setParams and attach.

Parameters
fctthe functor for transforming the covariance matrix into some quantity. If not precised, a default object is instantiated.

◆ IntegralInvariantCovarianceEstimator() [2/3]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::IntegralInvariantCovarianceEstimator ( ConstAlias< KSpace K,
ConstAlias< PointPredicate aPointPredicate,
CovarianceMatrixFunctor  fct = CovarianceMatrixFunctor() 
)

Constructor.

Parameters
[in]Kthe cellular grid space in which the shape is defined.
[in]aPointPredicatethe shape of interest. The alias can be secured if a some counted pointer is handed.
fctthe functor for transforming the covariance matrix into some quantity. If not precised, a default object is instantiated.

◆ ~IntegralInvariantCovarianceEstimator()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::~IntegralInvariantCovarianceEstimator ( )

Destructor.

◆ IntegralInvariantCovarianceEstimator() [3/3]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::IntegralInvariantCovarianceEstimator ( const Self other)

Copy constructor.

Parameters
otherthe object to clone.

Member Function Documentation

◆ attach()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
void DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::attach ( ConstAlias< KSpace K,
ConstAlias< PointPredicate aPointPredicate 
)

Attach a shape, defined as a functor spel -> boolean

Parameters
[in]Kthe cellular grid space in which the shape is defined.
aPointPredicatethe shape of interest. The alias can be secured if a some counted pointer is handed.

◆ BOOST_CONCEPT_ASSERT() [1/4]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CCellFunctor< ShapeSpelFunctor >)  )

◆ BOOST_CONCEPT_ASSERT() [2/4]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CCellularGridSpaceND< KSpace >)  )

◆ BOOST_CONCEPT_ASSERT() [3/4]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CPointPredicate< PointPredicate >)  )

◆ BOOST_CONCEPT_ASSERT() [4/4]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CUnaryFunctor< CovarianceMatrixFunctor, Matrix, Quantity >)  )

◆ BOOST_STATIC_ASSERT()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::BOOST_STATIC_ASSERT ( (concepts::ConceptUtils::SameType< typename Convolver::CovarianceMatrix, typename CovarianceMatrixFunctor::Argument >::value)  )

◆ clear()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
void DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::clear ( )

Clears the object. It is now invalid.

◆ eval() [1/2]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
template<typename SurfelConstIterator >
Quantity DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::eval ( SurfelConstIterator  it) const

– Estimation –

Compute the integral invariant covariance matrix at surfel *it of a shape, then apply the CovarianceMatrixFunctor to extract some geometric information.

Template Parameters
SurfelConstIteratortype of Iterator on a Surfel
Parameters
[in]ititerator pointing on the surfel of the shape where we wish to evaluate some geometric information.
Returns
quantity (normal vector) at surfel *it

◆ eval() [2/2]

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
template<typename OutputIterator , typename SurfelConstIterator >
OutputIterator DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::eval ( SurfelConstIterator  itb,
SurfelConstIterator  ite,
OutputIterator  result 
) const

– Estimation –

Compute the integral invariant covariance matrix for a range of surfels [itb,ite) on a shape, then apply the CovarianceMatrixFunctor to extract some geometric information. Return the result on an OutputIterator (param).

Template Parameters
OutputIteratortype of Iterator of an array of Quantity
SurfelConstIteratortype of Iterator on a Surfel
Parameters
[in]itbiterator defining the start of the range of surfels where we wish to compute some geometric information.
[in]iteiterator defining the end of the range of surfels where we wish to compute some geometric information.
[in]resultoutput iterator of results of the computation.
Returns
the updated output iterator after all outputs.

◆ h()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
Scalar DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::h ( ) const
Returns
the grid step.

◆ init()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
template<typename SurfelConstIterator >
void DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::init ( const double  _h,
SurfelConstIterator  itb,
SurfelConstIterator  ite 
)

Model of CDigitalSurfaceLocalEstimator. Initialisation.

Template Parameters
SurfelConstIteratorany model of forward readable iterator on Surfel.
Parameters
[in]_hgrid size (must be >0).
[in]iteiterator on the first surfel of the surface.
[in]itbiterator after the last surfel of the surface.

Referenced by laplace_sphere().

◆ isValid()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
bool DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

◆ operator=()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
Self& DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::operator= ( const Self other)

Assignment.

Parameters
otherthe object to copy.
Returns
a reference on 'this'.

◆ selfDisplay()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
void DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ setParams()

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
void DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::setParams ( const double  dRadius)

Set specific parameters: the radius of the ball.

Parameters
[in]dRadiusthe "digital" radius of the kernel (but may be non integer).

Field Documentation

◆ myConvolver

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<Convolver> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myConvolver
private

Convolver.

Definition at line 318 of file IntegralInvariantCovarianceEstimator.h.

◆ myDigKernel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<DigitalShapeKernel> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myDigKernel
private

Digital kernel.

Definition at line 313 of file IntegralInvariantCovarianceEstimator.h.

◆ myFct

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CovarianceMatrixFunctor DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myFct
private

The covariance matrix functor that transforms the II covariance matrix into a quantity.

Definition at line 308 of file IntegralInvariantCovarianceEstimator.h.

◆ myH

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
Scalar DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myH
private

precision of the grid

Definition at line 319 of file IntegralInvariantCovarianceEstimator.h.

◆ myKernel

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<KernelSupport> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myKernel
private

Euclidean kernel.

Definition at line 312 of file IntegralInvariantCovarianceEstimator.h.

◆ myKernelFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
const KernelSpelFunctor DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myKernelFunctor
private

Kernel functor (on Spel)

Definition at line 309 of file IntegralInvariantCovarianceEstimator.h.

◆ myKernels

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
std::vector< PairIterators > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myKernels
private

array of begin/end iterator of shifting masks.

Definition at line 310 of file IntegralInvariantCovarianceEstimator.h.

◆ myKernelsSet

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
std::vector< DigitalSet * > DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myKernelsSet
private

Array of shifting masks. Size = 9 for each shifting (0-adjacent and full kernel included)

Definition at line 311 of file IntegralInvariantCovarianceEstimator.h.

◆ myPointPredicate

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedConstPtrOrConstPtr<PointPredicate> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myPointPredicate
private

Smart pointer (if required) on a point predicate.

Definition at line 314 of file IntegralInvariantCovarianceEstimator.h.

◆ myRadius

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
Scalar DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myRadius
private

"digital" radius of the kernel (but may be non integer).

Definition at line 320 of file IntegralInvariantCovarianceEstimator.h.

◆ myShapeDomain

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<Domain> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myShapeDomain
private

Smart pointer on domain

Definition at line 315 of file IntegralInvariantCovarianceEstimator.h.

◆ myShapePointFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<ShapePointFunctor> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myShapePointFunctor
private

Smart pointer on functor point -> {0,1}.

Definition at line 316 of file IntegralInvariantCovarianceEstimator.h.

◆ myShapeSpelFunctor

template<typename TKSpace , typename TPointPredicate , typename TCovarianceMatrixFunctor >
CountedPtr<ShapeSpelFunctor> DGtal::IntegralInvariantCovarianceEstimator< TKSpace, TPointPredicate, TCovarianceMatrixFunctor >::myShapeSpelFunctor
private

Smart pointer on functor spel -> {0,1}.

Definition at line 317 of file IntegralInvariantCovarianceEstimator.h.


The documentation for this class was generated from the following file: