MSDM
 All Classes Namespaces Files Functions Variables Typedefs Pages
Public Member Functions | Public Attributes | List of all members
Distance3D< _Poly > Class Template Reference

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
 

Detailed Description

template<class _Poly>
class Distance3D< _Poly >

Estimation of the MSDM between 2 polyhedron with curvature information.

Author
Guillaume Lavoué, Xavier Rolland-Nevière

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.

Constructor & Destructor Documentation

template<class _Poly >
Distance3D< _Poly >::Distance3D ( Polyhedron *  _PolyOriginal,
Polyhedron *  _PolyDegrad,
const MSDM_options options 
)

Constructor of the MSDM computation.

Parameters
_PolyOriginalPointer to the original polyhedron
_PolyDegradPointer to the altered polyhedron
optionsParameter settings of the MSDM

Member Function Documentation

template<class _Poly >
mwSize Distance3D< _Poly >::buildPairwiseEstimation ( )

Build estimation of L, C and S at every vertex.

Returns
Number of failures

This procedure should be called prior to updateMSDM and assumes that both versions of the polyhedron have curvature estimates.

template<class _Poly >
double Distance3D< _Poly >::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 
)
inline

ici on prend en compte la distance map des sommets

template<class _Poly >
double Distance3D< _Poly >::updateMSDM ( std::vector< double > &  lMSDM) const

Compute local MSDM at all vertices and MSDM from previous computations.

Parameters
[out]lMSDMcontainer of local MSDM values
Returns
MSDM

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.


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