其他分享
首页 > 其他分享> > eigen 与 opencv 矩阵的相互转换

eigen 与 opencv 矩阵的相互转换

作者:互联网

需要包含以下头文件:

#include <Eigen/Dense>
#include <Eigen/Core>
// eigen 头文件必须放在 opencv 前面
#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>

然后使用 cv::cv2eigencv::eigen2cv 进行转换。

参考代码

#include <iostream>

#include <Eigen/Dense>
#include <Eigen/Core> // eigen 头文件必须放在 opencv 前面
#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>

int main()
{
    cv::Mat c_data(2,2,CV_32F);
    c_data = (cv::Mat_<float>(2,2) << 1,2,3,4);

    /* cv::Mat ---> Eigen::Matrix */
    Eigen::Matrix2d m_data;
    cv::cv2eigen(c_data, m_data); 
    std::cout << m_data << std::endl;

    /* Eigen::Matrix --> cv::Mat */
    cv::Mat c_data2;
    cv::eigen2cv(m_data, c_data2);
    std::cout << c_data2 << std::endl;

    return 0;
}

标签:eigen,矩阵,opencv,include,data,cv,Mat
来源: https://www.cnblogs.com/wreng/p/15917926.html