#include <pnp/upnp.h>
Public Member Functions | |
| upnp (const cv::Mat &cameraMatrix, const cv::Mat &opoints, const cv::Mat &ipoints) | |
| Constructor for UPnP class.  More... | |
| ~upnp () | |
| Destructor for UPnP class.  More... | |
| double | compute_pose (cv::Mat &R, cv::Mat &t) | 
| Function to compute pose.  More... | |
Private Member Functions | |
| template<typename T > | |
| void | init_camera_parameters (const cv::Mat &cameraMatrix) | 
| Initialize camera variables using camera intrinsic matrix.  More... | |
| template<typename OpointType , typename IpointType > | |
| void | init_points (const cv::Mat &opoints, const cv::Mat &ipoints) | 
| Iniialize Object points and image points from OpenCV Matrix.  More... | |
| double | reprojection_error (const double R[3][3], const double t[3]) | 
| Compute the reprojection error using the estimated Rotation matrix and Translation Vector.  More... | |
| void | choose_control_points () | 
| Function to select 4 control points.  More... | |
| void | compute_alphas () | 
| Function to comput @alphas.  More... | |
| void | fill_M (cv::Mat *M, const int row, const double *alphas, const double u, const double v) | 
| Function to compute Maucaulay matrix M.  More... | |
| void | compute_ccs (const double *betas, const double *ut) | 
| Compute the control points.  More... | |
| void | compute_pcs (void) | 
| Compute object points based on control points.  More... | |
| void | solve_for_sign (void) | 
| Internal member function.  More... | |
| void | find_betas_and_focal_approx_1 (cv::Mat *Ut, cv::Mat *Rho, double *betas, double *efs) | 
| Function to approximately calculate betas and focal length.  More... | |
| void | find_betas_and_focal_approx_2 (cv::Mat *Ut, cv::Mat *Rho, double *betas, double *efs) | 
| Function to calculate betas and focal length (more accurate)  More... | |
| void | qr_solve (cv::Mat *A, cv::Mat *b, cv::Mat *X) | 
| Function to do a QR decomposition.  More... | |
| cv::Mat | compute_constraint_distance_2param_6eq_2unk_f_unk (const cv::Mat &M1) | 
| Internal function.  More... | |
| cv::Mat | compute_constraint_distance_3param_6eq_6unk_f_unk (const cv::Mat &M1, const cv::Mat &M2) | 
| Internal function.  More... | |
| void | generate_all_possible_solutions_for_f_unk (const double betas[5], double solutions[18][3]) | 
| Get all possible solutions.  More... | |
| double | sign (const double v) | 
| Return the sign of the scalar.  More... | |
| double | dot (const double *v1, const double *v2) | 
| Compute the dot product between two vectors.  More... | |
| double | dotXY (const double *v1, const double *v2) | 
| Compute dot product in 2D with only x and y components.  More... | |
| double | dotZ (const double *v1, const double *v2) | 
| Compute the dot product using only z component.  More... | |
| double | dist2 (const double *p1, const double *p2) | 
| Compute the euclidean distance squared between two points in 3D.  More... | |
| void | compute_rho (double *rho) | 
| Internal fucntion.  More... | |
| void | compute_L_6x12 (const double *ut, double *l_6x12) | 
| Internal function.  More... | |
| void | gauss_newton (const cv::Mat *L_6x12, const cv::Mat *Rho, double current_betas[4], double *efs) | 
| Gauss Newton Iterative optimization.  More... | |
| void | compute_A_and_b_gauss_newton (const double *l_6x12, const double *rho, const double cb[4], cv::Mat *A, cv::Mat *b, double const f) | 
| Compute matrix A and vector b.  More... | |
| double | compute_R_and_t (const double *ut, const double *betas, double R[3][3], double t[3]) | 
| Function to compute the pose.  More... | |
| void | estimate_R_and_t (double R[3][3], double t[3]) | 
| Helper function to function compute_R_and_t()  More... | |
| 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]) | 
| Function to copy the pose.  More... | |
Private Attributes | |
| double | uc | 
| double | vc | 
| Image center in x-direction.  More... | |
| double | fu | 
| Image center in y-direction.  More... | |
| double | fv | 
| Focal length in x-direction.  More... | |
| std::vector< double > | pws | 
| Focal length in y-direction.  More... | |
| std::vector< double > | us | 
| Object points.  More... | |
| std::vector< double > | alphas | 
| Image points.  More... | |
| std::vector< double > | pcs | 
| int | number_of_correspondences | 
| Internal variable.  More... | |
| double | cws [4][3] | 
| Number of 2d/3d correspondences.  More... | |
| double | ccs [4][3] | 
| int | max_nr | 
| Control point variables.  More... | |
| double * | A1 | 
| Internal variable.  More... | |
| double * | A2 | 
| mrpt::vision::pnp::upnp::upnp | ( | const cv::Mat & | cameraMatrix, | 
| const cv::Mat & | opoints, | ||
| const cv::Mat & | ipoints | ||
| ) | 
Constructor for UPnP class.
| mrpt::vision::pnp::upnp::~upnp | ( | ) | 
Destructor for UPnP class.
      
  | 
  private | 
Function to select 4 control points.
      
  | 
  private | 
Compute matrix A and vector b.
| [in] | l_6x12 | |
| [in] | rho | |
| [in] | cb | |
| [out] | A | |
| [out] | b | |
| [in] | f | 
      
  | 
  private | 
Function to comput @alphas.
      
  | 
  private | 
Compute the control points.
| [in] | betas | Internal member variable | 
| [in] | ut | Internal member variable | 
      
  | 
  private | 
Internal function.
| [in] | M1 | 
      
  | 
  private | 
Internal function.
| [in] | M1 | |
| [in] | M2 | 
      
  | 
  private | 
Internal function.
| [in] | ut | |
| [out] | l_6x12 | 
Compute object points based on control points.
| double mrpt::vision::pnp::upnp::compute_pose | ( | cv::Mat & | R, | 
| cv::Mat & | t | ||
| ) | 
Function to compute pose.
| [out] | R | Rotation Matrix | 
| [out] | t | Translation Vector | 
Referenced by mrpt::vision::pnp::CPnP::upnp().
      
  | 
  private | 
Function to compute the pose.
| [in] | ut | |
| [in] | betas | |
| [out] | R | Rotation Matrix | 
| [out] | t | Translation VectorS | 
      
  | 
  private | 
Internal fucntion.
| [out] | rho | 
      
  | 
  private | 
Function to copy the pose.
| [in] | R_dst | |
| [in] | t_dst | |
| [out] | R_src | |
| [out] | t_src | 
      
  | 
  private | 
Compute the euclidean distance squared between two points in 3D.
| [in] | p1 | |
| [in] | p2 | 
      
  | 
  private | 
Compute the dot product between two vectors.
| [in] | v1 | |
| [in] | v2 | 
      
  | 
  private | 
Compute dot product in 2D with only x and y components.
| [in] | v1 | |
| [in] | v2 | 
      
  | 
  private | 
Compute the dot product using only z component.
| [in] | v1 | |
| [in] | v2 | 
      
  | 
  private | 
Helper function to function compute_R_and_t()
| [out] | R | Rotaiton matrix | 
| [out] | t | Translation vector | 
      
  | 
  private | 
Function to compute Maucaulay matrix M.
| [out] | M | Maucaulay matrix | 
| [in] | row | Internal member | 
| [in] | alphas | Internal member | 
| [in] | u | Image pixel x co-ordinate | 
| [in] | v | Image pixel y co-ordinate | 
      
  | 
  private | 
Function to approximately calculate betas and focal length.
| [in] | Ut | |
| [in] | Rho | |
| [out] | betas | |
| [out] | efs | 
      
  | 
  private | 
Function to calculate betas and focal length (more accurate)
| [in] | Ut | |
| [in] | Rho | |
| [out] | betas | |
| [out] | efs | 
      
  | 
  private | 
Gauss Newton Iterative optimization.
| [in] | L_6x12 | |
| [in] | Rho | |
| [in,out] | current_betas | |
| [out] | efs | 
      
  | 
  private | 
Get all possible solutions.
| [in] | betas | |
| [out] | solutions | 
      
  | 
  inlineprivate | 
      
  | 
  inlineprivate | 
Iniialize Object points and image points from OpenCV Matrix.
| [in] | opoints | Object Points | 
| [in] | ipoints | Image Points | 
Definition at line 129 of file upnp.h.
References number_of_correspondences, pws, and us.
      
  | 
  private | 
Function to do a QR decomposition.
| [in] | A | Matrix to be decomposed | 
| [out] | b | |
| [out] | X | 
      
  | 
  private | 
Compute the reprojection error using the estimated Rotation matrix and Translation Vector.
| [in] | R | Rotation matrix | 
| [in] | t | Trnaslation Vector | 
      
  | 
  private | 
Return the sign of the scalar.
| [in] | v | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
Image center in y-direction.
Definition at line 350 of file upnp.h.
Referenced by init_camera_parameters().
      
  | 
  private | 
Focal length in x-direction.
Definition at line 351 of file upnp.h.
Referenced by init_camera_parameters().
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
      
  | 
  private | 
Definition at line 348 of file upnp.h.
Referenced by init_camera_parameters().
      
  | 
  private | 
      
  | 
  private | 
Image center in x-direction.
Definition at line 349 of file upnp.h.
Referenced by init_camera_parameters().
| Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |