From 8bfaa97d67a6485ef10d9c2a95e6a5f8b51b1978 Mon Sep 17 00:00:00 2001 From: mangi020 Date: Sat, 21 May 2016 17:16:08 -0500 Subject: [PATCH] Use matplotlib for comparing translation errors --- python/src/pnp_bindings.cpp | 77 +++++++++++++++++++++++++++++++++---- 1 file changed, 70 insertions(+), 7 deletions(-) diff --git a/python/src/pnp_bindings.cpp b/python/src/pnp_bindings.cpp index d311904ff0..526ddfc5b2 100644 --- a/python/src/pnp_bindings.cpp +++ b/python/src/pnp_bindings.cpp @@ -9,6 +9,7 @@ using namespace boost::python; using namespace Eigen; #include +#include #include #include @@ -22,6 +23,7 @@ class PnPAlgos ~PnPAlgos(); int epnp_solve(PyObject* obj_pts, PyObject* img_pts, int n, PyObject* cam_intrinsic, PyObject* pose_mat); + int dls_solve(PyObject* obj_pts, PyObject* img_pts, int n, PyObject* cam_intrinsic, PyObject* pose_mat); private: int m; }; @@ -35,8 +37,9 @@ PnPAlgos::~PnPAlgos(){ template int pnpalgo_epnp(MatrixBase& obj_pts, MatrixBase& img_pts, int n, MatrixBase& cam_intrinsic, MatrixBase& pose_mat){ - MatrixXd cam_in_eig=cam_intrinsic.array().transpose(), img_pts_eig=img_pts.array().transpose(), obj_pts_eig=obj_pts.array().transpose(), R_eig, t_eig, pose_mat_eig=pose_mat; - Mat cam_in_cv(3,3,CV_32F), img_pts_cv(n,2,CV_32F), obj_pts_cv(n,3,CV_32F), R_cv, t_cv; + MatrixXd cam_in_eig=cam_intrinsic.array().transpose(), img_pts_eig=img_pts.array().transpose(), obj_pts_eig=obj_pts.array().transpose(), t_eig; + Matrix3d R_eig; + Mat cam_in_cv(3,3,CV_32F), img_pts_cv(2,n,CV_32F), obj_pts_cv(3,n,CV_32F), R_cv, t_cv; //cout<<"cam_in="<(args("m"))) .def("epnp_solve", &PnPAlgos::epnp_solve) + .def("dls_solve", &PnPAlgos::dls_solve) ; }