Aim: This class adapts a VoronoiCovarianceMeasureOnDigitalSurface to be a model of CDigitalSurfaceLocalEstimator. It uses the Voronoi Covariance Measure to estimate geometric quantities. The type TVCMGeometricFunctor specifies which is the estimated quantity. For instance, VCMGeometricFunctors::VCMNormalVectorFunctor returns the estimated VCM surface outward normal for given surfels.
More...
#include <DGtal/geometry/surfaces/estimation/VCMDigitalSurfaceLocalEstimator.h>
|
| ~VCMDigitalSurfaceLocalEstimator () |
|
| VCMDigitalSurfaceLocalEstimator () |
|
| VCMDigitalSurfaceLocalEstimator (const Self &other) |
|
Self & | operator= (const Self &other) |
|
| VCMDigitalSurfaceLocalEstimator (ConstAlias< Surface > surface) |
|
| VCMDigitalSurfaceLocalEstimator (ConstAlias< VCMOnSurface > aVCMOnSurface) |
|
void | attach (ConstAlias< Surface > surface) |
|
void | setParams (Surfel2PointEmbedding surfelEmbedding, const Scalar R, const Scalar r, KernelFunction chi_r, const Scalar t=2.5, Metric aMetric=Metric(), bool verbose=true) |
|
template<typename SurfelConstIterator > |
void | init (const Scalar _h, SurfelConstIterator itb, SurfelConstIterator ite) |
|
template<typename SurfelConstIterator > |
Quantity | eval (SurfelConstIterator it) const |
|
template<typename SurfelConstIterator , typename OutputIterator > |
OutputIterator | eval (SurfelConstIterator itb, SurfelConstIterator ite, OutputIterator result) const |
|
Scalar | h () const |
|
void | selfDisplay (std::ostream &out) const |
|
bool | isValid () const |
|
template<typename TDigitalSurfaceContainer, typename TSeparableMetric, typename TKernelFunction, typename TVCMGeometricFunctor>
class DGtal::VCMDigitalSurfaceLocalEstimator< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction, TVCMGeometricFunctor >
Aim: This class adapts a VoronoiCovarianceMeasureOnDigitalSurface to be a model of CDigitalSurfaceLocalEstimator. It uses the Voronoi Covariance Measure to estimate geometric quantities. The type TVCMGeometricFunctor specifies which is the estimated quantity. For instance, VCMGeometricFunctors::VCMNormalVectorFunctor returns the estimated VCM surface outward normal for given surfels.
Description of template class 'VCMDigitalSurfaceLocalEstimator'
- Note
- Documentation in The class VCMDigitalSurfaceLocalEstimator.
- Template Parameters
-
TDigitalSurfaceContainer | the type of digital surface container (model of CDigitalSurfaceContainer). |
TSeparableMetric | a model of CSeparableMetric used for computing the Voronoi map (e.g. Euclidean metric is DGtal::ExactPredicateLpSeparableMetric<TSpace, 2> ) |
TKernelFunction | the type of the kernel function chi_r used for integrating the VCM, a map: Point -> Scalar. |
TVCMGeometricFunctor | the type of the functor Surfel -> Quantity which chooses what is the returned estimation. Any VCMGeometricFunctors::VCMNormalVectorFunctor, ... is ok. |
Definition at line 82 of file VCMDigitalSurfaceLocalEstimator.h.
◆ ConstIterator
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ DigitalSurfaceContainer
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ KernelFunction
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Metric
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Quantity
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Scalar
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ SCell
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Self
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Surface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ Surfel
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ VCMGeometricFunctor
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ VCMOnSurface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ ~VCMDigitalSurfaceLocalEstimator()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ VCMDigitalSurfaceLocalEstimator() [1/4]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ VCMDigitalSurfaceLocalEstimator() [2/4]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Copy constructor.
- Parameters
-
other | the object to clone. |
◆ VCMDigitalSurfaceLocalEstimator() [3/4]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Constructor. The estimator is invalid and setParams must be called.
- Parameters
-
◆ VCMDigitalSurfaceLocalEstimator() [4/4]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ attach()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Attach a digital surface. After this call, the object is then invalid and the user must called setParams.
- Parameters
-
◆ BOOST_CONCEPT_ASSERT() [1/2]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ BOOST_CONCEPT_ASSERT() [2/2]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ eval() [1/2]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
template<typename SurfelConstIterator >
- Template Parameters
-
SurfelConstIterator | any model of forward readable iterator on Surfel. |
- Parameters
-
[in] | it | the surfel iterator at which we evaluate the quantity (within the range given at init). |
- Returns
- the estimated quantity at *it
◆ eval() [2/2]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
template<typename SurfelConstIterator , typename OutputIterator >
OutputIterator DGtal::VCMDigitalSurfaceLocalEstimator< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction, TVCMGeometricFunctor >::eval |
( |
SurfelConstIterator |
itb, |
|
|
SurfelConstIterator |
ite, |
|
|
OutputIterator |
result |
|
) |
| const |
- Returns
- the estimated quantity in the range [itb,ite)
- Parameters
-
[in] | itb | starting surfel iterator (within the range given at init). |
[in] | ite | end surfel iterator (within the range given at init). |
[in,out] | result | resulting output iterator |
◆ h()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
- Returns
- the gridstep.
- Precondition
- must be called after init
◆ init()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
template<typename SurfelConstIterator >
Model of CDigitalSurfaceLocalEstimator. Initialisation. Only used for storing gridstep and checking object validity. The VCM is necessarily initialized on the whole surface and _h is not used for normal estimation.
- Template Parameters
-
SurfelConstIterator | any model of forward readable iterator on Surfel. |
- Parameters
-
[in] | _h | grid size (must be >0). |
[in] | ite | iterator on the first surfel of the surface. |
[in] | itb | iterator after the last surfel of the surface. |
◆ isValid()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Checks the validity/consistency of the object.
- Returns
- 'true' if the object is valid, 'false' otherwise.
◆ operator=()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Assignment.
- Parameters
-
- Returns
- a reference on 'this'.
◆ selfDisplay()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Writes/Displays the object on an output stream.
- Parameters
-
out | the output stream where the object is written. |
◆ setParams()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
Initialisation of estimator specific parameters.
- Parameters
-
[in] | surfelEmbedding | the chosen embedding for surfels. |
[in] | R | the offset radius for the set of points. Voronoi cells are intersected with this offset. The unit corresponds to a step in the digital space. |
[in] | r | (an upper bound of) the radius of the support of the kernel function chi_r (note \(\chi_r\) in the VCM paper). The unit corresponds to a step in the digital space. This parameter is used for preparing the data structure that answers to proximity queries. |
[in] | chi_r | the kernel function whose support has radius less or equal to r. |
[in] | t | the radius for the trivial normal estimator, which is used for finding the correct orientation inside/outside for the VCM. |
[in] | aMetric | an instance of the metric. |
[in] | verbose | if 'true' displays information on ongoing computation. |
◆ myGeomFct
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ myH
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ mySurface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ mySurfelEmbedding
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
◆ myVCMOnSurface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction , typename TVCMGeometricFunctor >
The documentation for this class was generated from the following file: