ORB-SLAM2代码笔记(六):Convert

2019-07-26  本文已影响0人  liampayne_66d0

Converter

for (int j=0;j<Descriptors.rows;j++)
        vDesc.push_back(Descriptors.row(j));
    for(int i=0;i<3;i++)
    {
        for(int j=0;j<3;j++)
        {
            cvMat.at<float>(i,j)=R(i,j);
        }
    }
    for(int i=0;i<3;i++)
    {
        cvMat.at<float>(i,3)=t(i);
    }
    return cvMat.clone();

Eigen::Matrix<double,3,3> Converter::toMatrix3d(const cv::Mat &cvMat3)
cv::Mat转成Eigen::Matrix<double,3,3>
采用下面的赋值方法

    //生成用于存储转换结果的变量
    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;
上一篇 下一篇

猜你喜欢

热点阅读