25 #ifndef INCLUDED_cvToEigen_h_GUID_3A0994D8_A408_44B1_411A_C86F3E9332AB
26 #define INCLUDED_cvToEigen_h_GUID_3A0994D8_A408_44B1_411A_C86F3E9332AB
32 #include <opencv2/calib3d/calib3d.hpp>
33 #include <opencv2/core/core.hpp>
34 #include <opencv2/core/eigen.hpp>
42 inline Eigen::Quaterniond cvRotVecToQuat(cv::Mat
const &vec) {
50 cv::Rodrigues(vec, rot);
51 Eigen::Matrix3d rotMat;
52 cv::cv2eigen(rot, rotMat);
53 return Eigen::Quaterniond(rotMat);
56 inline cv::Mat eiQuatToRotVec(Eigen::Quaterniond
const &q) {
58 Eigen::Matrix3d eiRotMatrix = q.toRotationMatrix();
59 cv::eigen2cv(eiRotMatrix, rotMatrix);
61 cv::Rodrigues(rotMatrix, rot);
65 inline Eigen::Vector3f cvToVector(cv::Point3f
const &point) {
66 return Eigen::Vector3f(point.x, point.y, point.z);
69 inline Eigen::Vector3d cvToVector(cv::Point3d
const &point) {
70 return Eigen::Vector3d(point.x, point.y, point.z);
73 inline Eigen::Vector2f cvToVector(cv::Point2f
const &point) {
74 return Eigen::Vector2f(point.x, point.y);
77 inline Eigen::Vector2d cvToVector(cv::Point2d
const &point) {
78 return Eigen::Vector2d(point.x, point.y);
81 inline Eigen::Vector3d cvToVector3d(cv::InputArray vec) {
82 cv::Mat src = vec.getMat();
83 CV_Assert(src.type() == CV_64FC1);
85 cv::cv2eigen(src, ret);
88 inline cv::Point3f vec3dToCVPoint3f(Eigen::Vector3d
const &vec) {
89 return cv::Point3f(vec.x(), vec.y(), vec.z());
92 inline cv::Point2f vecToPoint(Eigen::Vector2f
const &vec) {
93 return cv::Point2f(vec.x(), vec.y());
97 template <
typename Scalar,
size_t Rows,
size_t Cols>
98 inline Eigen::Map<Eigen::Matrix<Scalar, Rows, Cols, 0>>
99 map(cv::Matx<Scalar, Rows, Cols> &cvMatx) {
100 return Eigen::Matrix<Scalar, Rows, Cols>::Map(cvMatx.val);
105 template <
typename Scalar,
size_t Rows,
size_t Cols>
106 inline Eigen::Map<const Eigen::Matrix<Scalar, Rows, Cols, 0>>
107 map(cv::Matx<Scalar, Rows, Cols>
const &cvMatx) {
108 return Eigen::Matrix<Scalar, Rows, Cols>::Map(cvMatx.val);
113 #endif // INCLUDED_cvToEigen_h_GUID_3A0994D8_A408_44B1_411A_C86F3E9332AB
Header wrapping include of and for warning quieting.