最近由于需要使用OpenCV的Mat计算的姿态与Eigen之间进行切换,所以涉及两个类型之间的转换;
#include <iostream>
#include <Eigen/Dense>
#include <math.h>
#include <opencv2/core/eigen.hpp>
//包含该头文件前必须先包含Eigen头文件,否则:error: Eigen does not name a type
using namespace Eigen;
using namespace std;
int main()
{
/* 按照元素相乘 */
Eigen::Vector3d temp1(-1, 0, 1);
Eigen::Vector3d temp2(-2, 0, 2);
cout << temp1.cwiseProduct(temp2) << endl;
cout << endl;
/* opencv与eigen的相互转换 */
cv::Mat tempMat;
eigen2cv(temp1, tempMat);
cout << "转化为opencv Mat: \n" << tempMat << endl;
Eigen::Matrix3d tempMatrix;
tempMat = (cv::Mat_<int>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1);
cv2eigen(tempMat, tempMatrix);
cout << "转化为Eigen Matrix: \n" << tempMatrix << endl;
}