#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 . 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 .
|
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.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019 |