Aim: This class specializes the Voronoi covariance measure for digital surfaces. It adds notably the embedding of surface elements, the diagonalisation of the VCM, and the orientation of the first VCM eigenvector toward the interior of the surface.
More...
#include <DGtal/geometry/surfaces/estimation/VoronoiCovarianceMeasureOnDigitalSurface.h>
|
| BOOST_CONCEPT_ASSERT ((concepts::CUnaryFunctor< KernelFunction, Point, Scalar >)) |
|
| ~VoronoiCovarianceMeasureOnDigitalSurface () |
|
| VoronoiCovarianceMeasureOnDigitalSurface (ConstAlias< Surface > _surface, Surfel2PointEmbedding _surfelEmbedding, Scalar _R, Scalar _r, KernelFunction chi_r, Scalar t=2.5, Metric aMetric=Metric(), bool verbose=false) |
|
CountedConstPtrOrConstPtr< Surface > | surface () const |
| the const-aliased digital surface. More...
|
|
Surfel2PointEmbedding | surfelEmbedding () const |
| the chosen embedding Surfel -> Point(s) More...
|
|
Scalar | R () const |
|
Scalar | r () const |
|
Scalar | radiusTrivial () const |
|
template<typename PointOutputIterator > |
PointOutputIterator | getPoints (PointOutputIterator outIt, Surfel s) const |
|
const Surfel2Normals & | mapSurfel2Normals () const |
|
const Point2EigenStructure & | mapPoint2ChiVCM () const |
|
bool | getChiVCMEigenvalues (VectorN &values, Surfel s) const |
|
bool | getChiVCMEigenStructure (VectorN &values, MatrixNN &vectors, Surfel s) const |
|
void | selfDisplay (std::ostream &out) const |
|
bool | isValid () const |
|
template<typename TDigitalSurfaceContainer, typename TSeparableMetric, typename TKernelFunction>
class DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >
Aim: This class specializes the Voronoi covariance measure for digital surfaces. It adds notably the embedding of surface elements, the diagonalisation of the VCM, and the orientation of the first VCM eigenvector toward the interior of the surface.
Description of template class 'VoronoiCovarianceMeasureOnDigitalSurface'
- Note
- Documentation in The class VoronoiCovarianceMeasureOnDigitalSurface.
- See also
- VoronoiCovarianceMeasure
- 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. |
- Examples
- geometry/surfaces/dvcm-2d-curvature.cpp, and geometry/surfaces/dvcm-3d.cpp.
Definition at line 86 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
◆ ConstIterator
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ DigitalSurfaceContainer
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ KernelFunction
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ KSpace
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ LinearAlgebraTool
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ MatrixNN
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Metric
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Point
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Point2EigenStructure
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Scalar
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ SCell
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Space
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Surface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Surfel
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ Surfel2Normals
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ VCM
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ VectorN
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ ~VoronoiCovarianceMeasureOnDigitalSurface()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ VoronoiCovarianceMeasureOnDigitalSurface() [1/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Constructor. Computes the VCM of the given surface.
- Parameters
-
_surface | the digital surface that is aliased in this. The user can secure the aliasing by passing a CountedConstPtrOrConstPtr. |
_surfelEmbedding | the chosen embedding for surfels. |
_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. |
_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. |
chi_r | the kernel function whose support has radius less or equal to r. |
t | the radius for the trivial normal estimator, which is used for finding the correct orientation inside/outside for the VCM. |
aMetric | an instance of the metric (used for the Voronoi map construction). |
verbose | if 'true' displays information on ongoing computation. |
◆ VoronoiCovarianceMeasureOnDigitalSurface() [2/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Constructor. Forbidden by default (protected to avoid g++ warnings).
◆ VoronoiCovarianceMeasureOnDigitalSurface() [3/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Copy constructor.
- Parameters
-
other | the object to clone. Forbidden by default. |
◆ BOOST_CONCEPT_ASSERT() [1/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ BOOST_CONCEPT_ASSERT() [2/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ BOOST_CONCEPT_ASSERT() [3/3]
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ getChiVCMEigenStructure()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Gets the eigen decomposition of the chi_r VCM at surfel s.
- Parameters
-
[out] | values | the eigenvalues of the chi_r VCM at s sorted from lowest to highest.. |
[out] | vectors | the eigenvectors of the chi_r VCM at s associated to values. |
[in] | s | the surfel |
- Returns
- 'true' is the surfel s was valid.
◆ getChiVCMEigenvalues()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Gets the eigenvalues of the chi_r VCM at surfel s sorted from lowest to highest.
- Parameters
-
[out] | values | the eigenvalues of the chi_r VCM at s. |
[in] | s | the surfel |
- Returns
- 'true' is the surfel s was valid.
◆ getPoints()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
template<typename PointOutputIterator >
- Parameters
-
[in] | outIt | an output iterator on Point to write the point(s) associated to surfel s. |
[in] | s | the surfel that is embedded in the digital space according to mySurfelEmbedding. |
- Returns
- the (modified) output iterator after the write operations.
◆ isValid()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Checks the validity/consistency of the object.
- Returns
- 'true' if the object is valid, 'false' otherwise.
◆ mapPoint2ChiVCM()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
- Returns
- a const-reference to the map Point -> EigenStructure of the chi_r VCM (eigenvalues and eigenvectors).
◆ mapSurfel2Normals()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
- Returns
- a const-reference to the map Surfel -> Normals (vcm and trivial normal).
◆ operator=()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Assignment.
- Parameters
-
- Returns
- a reference on 'this'. Forbidden by default.
◆ R()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
- Returns
- the parameter R in the VCM, i.e. the offset radius for the compact set K.
◆ r()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
- Returns
- the parameter r in VCM(chi_r), i.e. an upper bound for the diameter of the support of kernel functions.
◆ radiusTrivial()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
- Returns
- the radius for the trivial normal estimator, which is used for finding the correct orientation inside/outside for the VCM.
◆ selfDisplay()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
Writes/Displays the object on an output stream.
- Parameters
-
out | the output stream where the object is written. |
◆ surface()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
the const-aliased digital surface.
◆ surfelEmbedding()
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
the chosen embedding Surfel -> Point(s)
◆ myChi
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ myPt2EigenStructure
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ myRadiusTrivial
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ mySurface
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ mySurfel2Normals
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ mySurfelEmbedding
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
◆ myVCM
template<typename TDigitalSurfaceContainer , typename TSeparableMetric , typename TKernelFunction >
The documentation for this class was generated from the following file: