ubuntu 下Eigen库安装

来源:互联网 发布:男但丁数据 编辑:程序博客网 时间:2024/04/30 02:21

1安装:sudo apt-get install libeigen3-dev

2 调整,默认安装路径是:/usr/include/eigen3

3. sudo cp -r  /usr/include/eigen3/Eigen  /usr/local/include/

4. 头文件: #include <Eigen/Dense>

例子://将旋转矩阵转成四元数

Eigen::Matrix<double,3,3> toMatrix3d(const cv::Mat &cvMat3)
{
    Eigen::Matrix<double,3,3> M;

    M << cvMat3.at<float>(0,0), cvMat3.at<float>(0,1), cvMat3.at<float>(0,2),
         cvMat3.at<float>(1,0), cvMat3.at<float>(1,1), cvMat3.at<float>(1,2),
         cvMat3.at<float>(2,0), cvMat3.at<float>(2,1), cvMat3.at<float>(2,2);

    return M;
}

std::vector<float> toQuaternion(const cv::Mat &M)
{
    Eigen::Matrix<double,3,3> eigMat = toMatrix3d(M);
    Eigen::Quaterniond q(eigMat);

    std::vector<float> v(4);
    v[0] = q.x();
    v[1] = q.y();
    v[2] = q.z();
    v[3] = q.w();

    return v;
}

cv::Mat Rwc = R.t();     //3*3旋转矩阵
cv::Mat twc = R*T;    //T是3*1平移矩阵

vector<float> q = toQuaternion(Rwc); //将旋转矩阵转成四元数

 cout <<  setprecision(4) << twc.at<float>(0) << " " << twc.at<float>(1) << " " << twc.at<float>(2) << " " << q[0] << " " << q[1] << " " << q[2] << " " << q[3] << endl;


0 0