Estimation of the MSDM between 2 polyhedron with curvature information. More...
#include <Distance3D.h>
Public Member Functions | |
Distance3D (Polyhedron *_PolyOriginal, Polyhedron *_PolyDegrad, const MSDM_options &options) | |
Constructor of the MSDM computation. More... | |
double | updateMSDM (std::vector< double > &lMSDM) const |
Compute local MSDM at all vertices and MSDM from previous computations. More... | |
mwSize | buildPairwiseEstimation () |
Build estimation of L, C and S at every vertex. More... | |
Distance3D (Polyhedron *_PolyOriginal) | |
const bool & | IsLoaded () const |
bool & | IsLoaded () |
void | IsLoaded (const bool &p) |
const Polyhedron & | PolyOriginal () const |
Polyhedron & | PolyOriginal () |
void | PolyOriginal (Polyhedron *p) |
const Polyhedron & | PolyDegrad () const |
Polyhedron & | PolyDegrad () |
void | PolyDegrad (const Polyhedron &p) |
double | Processroughness_curve_Dual (double radius, double maxdim, bool IsGauss=true) |
double | ProcessCovariance (Vertex *pVertex, double moyenne, double moyenneDeg, std::vector< double > TabDistance, std::vector< Point > TabPoint, std::vector< double > TabDistanceDeg, std::vector< Point > TabPointDeg, double dim, bool IsGauss) |
bool | sphere_clip_vector (Point &O, double r, const Point &P, Vector &V) |
double | Processroughness_per_vertex_curve (Polyhedron *PolyUsed, Vertex *pVertex, double radius, std::vector< double > &TabDistance, std::vector< Point > &TabPoint, double &moyenneRet, double dim, bool IsGauss=false) |
void | ComputeDistanceEcartNormalRoughnessPonderate (double Param, double &L1, double &L2, double &L3, double &L4) |
Public Attributes | |
Polyhedron | m_PolyDegrad |
bool | IsMapDistanceCalculated |
Estimation of the MSDM between 2 polyhedron with curvature information.
According to: Perceptually driven 3D distance metrics with application to watermarking, Lavoué, G., Drelie Gelasca, E., Dupont, F., Baskurt, A., Ebrahimi, T., in Proceedings of SPIE Applications of Digital Image Processing XXIX, August 2006.
Distance3D< _Poly >::Distance3D | ( | Polyhedron * | _PolyOriginal, |
Polyhedron * | _PolyDegrad, | ||
const MSDM_options & | options | ||
) |
Constructor of the MSDM computation.
_PolyOriginal | Pointer to the original polyhedron |
_PolyDegrad | Pointer to the altered polyhedron |
options | Parameter settings of the MSDM |
mwSize Distance3D< _Poly >::buildPairwiseEstimation | ( | ) |
Build estimation of L, C and S at every vertex.
This procedure should be called prior to updateMSDM and assumes that both versions of the polyhedron have curvature estimates.
|
inline |
ici on prend en compte la distance map des sommets
double Distance3D< _Poly >::updateMSDM | ( | std::vector< double > & | lMSDM | ) | const |
Compute local MSDM at all vertices and MSDM from previous computations.
[out] | lMSDM | container of local MSDM values |
Based on the settings in MSDM_options, compute the weighted sum of curvature variations at every vertex (local MSDM) and return the global Minkowski sum (MSDM). This procedure is multithreaded.