Public Member Functions | Private Member Functions | Private Attributes
epnp Class Reference

#include <epnp.h>

List of all members.

Public Member Functions

void add_correspondence (const double X, const double Y, const double Z, const double u, const double v)
double compute_pose (double R[3][3], double T[3])
 epnp (void)
void print_pose (const double R[3][3], const double t[3])
void relative_error (double &rot_err, double &transl_err, const double Rtrue[3][3], const double ttrue[3], const double Rest[3][3], const double test[3])
double reprojection_error (const double R[3][3], const double t[3])
void reset_correspondences (void)
void set_internal_parameters (const double uc, const double vc, const double fu, const double fv)
void set_maximum_number_of_correspondences (const int n)
 ~epnp ()

Private Member Functions

void choose_control_points (void)
void compute_A_and_b_gauss_newton (const double *l_6x10, const double *rho, double cb[4], CvMat *A, CvMat *b)
void compute_barycentric_coordinates (void)
void compute_ccs (const double *betas, const double *ut)
void compute_L_6x10 (const double *ut, double *l_6x10)
void compute_pcs (void)
double compute_R_and_t (const double *ut, const double *betas, double R[3][3], double t[3])
void compute_rho (double *rho)
void copy_R_and_t (const double R_dst[3][3], const double t_dst[3], double R_src[3][3], double t_src[3])
double dist2 (const double *p1, const double *p2)
double dot (const double *v1, const double *v2)
void estimate_R_and_t (double R[3][3], double t[3])
void fill_M (CvMat *M, const int row, const double *alphas, const double u, const double v)
void find_betas_approx_1 (const CvMat *L_6x10, const CvMat *Rho, double *betas)
void find_betas_approx_2 (const CvMat *L_6x10, const CvMat *Rho, double *betas)
void find_betas_approx_3 (const CvMat *L_6x10, const CvMat *Rho, double *betas)
void gauss_newton (const CvMat *L_6x10, const CvMat *Rho, double current_betas[4])
void mat_to_quat (const double R[3][3], double q[4])
void qr_solve (CvMat *A, CvMat *b, CvMat *X)
void solve_for_sign (void)

Private Attributes

double * alphas
double ccs [4][3]
double cws [4][3]
double cws_determinant
double fu
double fv
int maximum_number_of_correspondences
int number_of_correspondences
double * pcs
double * pws
double uc
double * us
double vc

Detailed Description

Definition at line 6 of file epnp.h.


Constructor & Destructor Documentation

epnp::epnp ( void  )

Definition at line 6 of file epnp.cpp.

Definition at line 17 of file epnp.cpp.


Member Function Documentation

void epnp::add_correspondence ( const double  X,
const double  Y,
const double  Z,
const double  u,
const double  v 
)

Definition at line 54 of file epnp.cpp.

void epnp::choose_control_points ( void  ) [private]

Definition at line 66 of file epnp.cpp.

void epnp::compute_A_and_b_gauss_newton ( const double *  l_6x10,
const double *  rho,
double  cb[4],
CvMat *  A,
CvMat *  b 
) [private]

Definition at line 503 of file epnp.cpp.

void epnp::compute_barycentric_coordinates ( void  ) [private]

Definition at line 102 of file epnp.cpp.

void epnp::compute_ccs ( const double *  betas,
const double *  ut 
) [private]

Definition at line 144 of file epnp.cpp.

void epnp::compute_L_6x10 ( const double *  ut,
double *  l_6x10 
) [private]

Definition at line 451 of file epnp.cpp.

void epnp::compute_pcs ( void  ) [private]

Definition at line 157 of file epnp.cpp.

double epnp::compute_pose ( double  R[3][3],
double  T[3] 
)

Definition at line 168 of file epnp.cpp.

double epnp::compute_R_and_t ( const double *  ut,
const double *  betas,
double  R[3][3],
double  t[3] 
) [private]

Definition at line 342 of file epnp.cpp.

void epnp::compute_rho ( double *  rho) [private]

Definition at line 493 of file epnp.cpp.

void epnp::copy_R_and_t ( const double  R_dst[3][3],
const double  t_dst[3],
double  R_src[3][3],
double  t_src[3] 
) [private]

Definition at line 218 of file epnp.cpp.

double epnp::dist2 ( const double *  p1,
const double *  p2 
) [private]

Definition at line 228 of file epnp.cpp.

double epnp::dot ( const double *  v1,
const double *  v2 
) [private]

Definition at line 236 of file epnp.cpp.

void epnp::estimate_R_and_t ( double  R[3][3],
double  t[3] 
) [private]

Definition at line 260 of file epnp.cpp.

void epnp::fill_M ( CvMat *  M,
const int  row,
const double *  alphas,
const double  u,
const double  v 
) [private]

Definition at line 127 of file epnp.cpp.

void epnp::find_betas_approx_1 ( const CvMat *  L_6x10,
const CvMat *  Rho,
double *  betas 
) [private]

Definition at line 358 of file epnp.cpp.

void epnp::find_betas_approx_2 ( const CvMat *  L_6x10,
const CvMat *  Rho,
double *  betas 
) [private]

Definition at line 390 of file epnp.cpp.

void epnp::find_betas_approx_3 ( const CvMat *  L_6x10,
const CvMat *  Rho,
double *  betas 
) [private]

Definition at line 422 of file epnp.cpp.

void epnp::gauss_newton ( const CvMat *  L_6x10,
const CvMat *  Rho,
double  current_betas[4] 
) [private]

Definition at line 531 of file epnp.cpp.

void epnp::mat_to_quat ( const double  R[3][3],
double  q[4] 
) [private]

Definition at line 675 of file epnp.cpp.

void epnp::print_pose ( const double  R[3][3],
const double  t[3] 
)

Definition at line 320 of file epnp.cpp.

void epnp::qr_solve ( CvMat *  A,
CvMat *  b,
CvMat *  X 
) [private]

Definition at line 551 of file epnp.cpp.

void epnp::relative_error ( double &  rot_err,
double &  transl_err,
const double  Rtrue[3][3],
const double  ttrue[3],
const double  Rest[3][3],
const double  test[3] 
)

Definition at line 645 of file epnp.cpp.

double epnp::reprojection_error ( const double  R[3][3],
const double  t[3] 
)

Definition at line 241 of file epnp.cpp.

void epnp::reset_correspondences ( void  )

Definition at line 49 of file epnp.cpp.

void epnp::set_internal_parameters ( const double  uc,
const double  vc,
const double  fu,
const double  fv 
)

Definition at line 25 of file epnp.cpp.

Definition at line 33 of file epnp.cpp.

void epnp::solve_for_sign ( void  ) [private]

Definition at line 327 of file epnp.cpp.


Member Data Documentation

double * epnp::alphas [private]

Definition at line 65 of file epnp.h.

double epnp::ccs[4][3] [private]

Definition at line 69 of file epnp.h.

double epnp::cws[4][3] [private]

Definition at line 69 of file epnp.h.

double epnp::cws_determinant [private]

Definition at line 70 of file epnp.h.

double epnp::fu [private]

Definition at line 63 of file epnp.h.

double epnp::fv [private]

Definition at line 63 of file epnp.h.

Definition at line 66 of file epnp.h.

Definition at line 67 of file epnp.h.

double * epnp::pcs [private]

Definition at line 65 of file epnp.h.

double* epnp::pws [private]

Definition at line 65 of file epnp.h.

double epnp::uc [private]

Definition at line 63 of file epnp.h.

double * epnp::us [private]

Definition at line 65 of file epnp.h.

double epnp::vc [private]

Definition at line 63 of file epnp.h.


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


re_vision
Author(s): Dorian Galvez-Lopez
autogenerated on Sun Jan 5 2014 11:34:01