DGtal 1.4.0
|
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>
Data Structures | |
struct | EigenStructure |
Structure to hold a diagonalized matrix. More... | |
struct | Normals |
Structure to hold the normals for each surfel (the VCM one and the trivial one). More... | |
Public Types | |
typedef TDigitalSurfaceContainer | DigitalSurfaceContainer |
the chosen container | |
typedef TSeparableMetric | Metric |
the chosen metric | |
typedef TKernelFunction | KernelFunction |
the kernel function | |
typedef DigitalSurface< DigitalSurfaceContainer > | Surface |
the chosen digital surface | |
typedef DigitalSurfaceContainer::KSpace | KSpace |
the cellular space | |
typedef DigitalSurfaceContainer::Surfel | Surfel |
the n-1 cells | |
typedef KSpace::SCell | SCell |
the signed cells | |
typedef KSpace::Space | Space |
the digital space | |
typedef KSpace::Point | Point |
the digital points | |
typedef VoronoiCovarianceMeasure< Space, Metric > | VCM |
the Voronoi Covariance Measure | |
typedef VCM::Scalar | Scalar |
the "real number" type | |
typedef Surface::ConstIterator | ConstIterator |
the iterator for traversing the surface | |
typedef EigenDecomposition< KSpace::dimension, Scalar > | LinearAlgebraTool |
diagonalizer (nD). | |
typedef VCM::VectorN | VectorN |
n-dimensional R-vector | |
typedef VCM::MatrixNN | MatrixNN |
nxn R-matrix | |
typedef std::map< Point, EigenStructure > | Point2EigenStructure |
the map Point -> EigenStructure | |
typedef std::map< Surfel, Normals > | Surfel2Normals |
the map Surfel -> Normals | |
Protected Member Functions | |
VoronoiCovarianceMeasureOnDigitalSurface () | |
Protected Attributes | |
CountedConstPtrOrConstPtr< Surface > | mySurface |
(possibly secure) alias of the digital surface | |
Surfel2PointEmbedding | mySurfelEmbedding |
The chosen embedding for the surfels. | |
KernelFunction | myChi |
The kernel function chi_r. | |
VCM | myVCM |
Stores the voronoi covariance measure of the point embedding of the surface. | |
Scalar | myRadiusTrivial |
Point2EigenStructure | myPt2EigenStructure |
Stores for each point p its convolved VCM, i.e. VCM( chi_r( p ) ) | |
Surfel2Normals | mySurfel2Normals |
Stores for each surfel its vcm normal and its trivial normal. | |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CDigitalSurfaceContainer< TDigitalSurfaceContainer >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CSeparableMetric< TSeparableMetric >)) | |
VoronoiCovarianceMeasureOnDigitalSurface (const VoronoiCovarianceMeasureOnDigitalSurface &other) | |
VoronoiCovarianceMeasureOnDigitalSurface & | operator= (const VoronoiCovarianceMeasureOnDigitalSurface &other) |
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'
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. |
Definition at line 86 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef Surface::ConstIterator DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::ConstIterator |
the iterator for traversing the surface
Definition at line 103 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef TDigitalSurfaceContainer DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::DigitalSurfaceContainer |
the chosen container
Definition at line 92 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef TKernelFunction DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::KernelFunction |
the kernel function
Definition at line 94 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef DigitalSurfaceContainer::KSpace DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::KSpace |
the cellular space
Definition at line 96 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef EigenDecomposition<KSpace::dimension,Scalar> DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::LinearAlgebraTool |
diagonalizer (nD).
Definition at line 104 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef VCM::MatrixNN DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::MatrixNN |
nxn R-matrix
Definition at line 106 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef TSeparableMetric DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Metric |
the chosen metric
Definition at line 93 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef KSpace::Point DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Point |
the digital points
Definition at line 100 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef std::map<Point,EigenStructure> DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Point2EigenStructure |
the map Point -> EigenStructure
Definition at line 120 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef VCM::Scalar DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Scalar |
the "real number" type
Definition at line 102 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef KSpace::SCell DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::SCell |
the signed cells
Definition at line 98 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef KSpace::Space DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Space |
the digital space
Definition at line 99 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef DigitalSurface<DigitalSurfaceContainer> DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Surface |
the chosen digital surface
Definition at line 95 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef DigitalSurfaceContainer::Surfel DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Surfel |
the n-1 cells
Definition at line 97 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef std::map<Surfel,Normals> DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::Surfel2Normals |
the map Surfel -> Normals
Definition at line 121 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef VoronoiCovarianceMeasure<Space,Metric> DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::VCM |
the Voronoi Covariance Measure
Definition at line 101 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
typedef VCM::VectorN DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::VectorN |
n-dimensional R-vector
Definition at line 105 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::~VoronoiCovarianceMeasureOnDigitalSurface | ( | ) |
Destructor.
DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::VoronoiCovarianceMeasureOnDigitalSurface | ( | ConstAlias< Surface > | _surface, |
Surfel2PointEmbedding | _surfelEmbedding, | ||
Scalar | _R, | ||
Scalar | _r, | ||
KernelFunction | chi_r, | ||
Scalar | t = 2.5, | ||
Metric | aMetric = Metric(), | ||
bool | verbose = false ) |
Constructor. Computes the VCM of the given surface.
_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. |
|
protected |
Constructor. Forbidden by default (protected to avoid g++ warnings).
|
private |
Copy constructor.
other | the object to clone. Forbidden by default. |
|
private |
|
private |
DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::BOOST_CONCEPT_ASSERT | ( | (concepts::CUnaryFunctor< KernelFunction, Point, Scalar >) | ) |
bool DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::getChiVCMEigenStructure | ( | VectorN & | values, |
MatrixNN & | vectors, | ||
Surfel | s ) const |
Gets the eigen decomposition of the chi_r VCM at surfel s.
[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 |
bool DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::getChiVCMEigenvalues | ( | VectorN & | values, |
Surfel | s ) const |
Gets the eigenvalues of the chi_r VCM at surfel s sorted from lowest to highest.
[out] | values | the eigenvalues of the chi_r VCM at s. |
[in] | s | the surfel |
PointOutputIterator DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::getPoints | ( | PointOutputIterator | outIt, |
Surfel | s ) const |
[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. |
bool DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
const Point2EigenStructure & DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::mapPoint2ChiVCM | ( | ) | const |
const Surfel2Normals & DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::mapSurfel2Normals | ( | ) | const |
|
private |
Assignment.
other | the object to copy. |
Scalar DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::R | ( | ) | const |
Scalar DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::r | ( | ) | const |
Scalar DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::radiusTrivial | ( | ) | const |
void DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
CountedConstPtrOrConstPtr< Surface > DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::surface | ( | ) | const |
the const-aliased digital surface.
Surfel2PointEmbedding DGtal::VoronoiCovarianceMeasureOnDigitalSurface< TDigitalSurfaceContainer, TSeparableMetric, TKernelFunction >::surfelEmbedding | ( | ) | const |
the chosen embedding Surfel -> Point(s)
|
protected |
The kernel function chi_r.
Definition at line 239 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
Stores for each point p its convolved VCM, i.e. VCM( chi_r( p ) )
Definition at line 247 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
Stores the radius for the trivial normal estimator, which is used for finding the correct orientation inside/outside for the VCM.
Definition at line 245 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
(possibly secure) alias of the digital surface
Definition at line 235 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
Stores for each surfel its vcm normal and its trivial normal.
Definition at line 249 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
The chosen embedding for the surfels.
Definition at line 237 of file VoronoiCovarianceMeasureOnDigitalSurface.h.
|
protected |
Stores the voronoi covariance measure of the point embedding of the surface.
Definition at line 241 of file VoronoiCovarianceMeasureOnDigitalSurface.h.