Mat与Eigen的交互
OpenCV矩阵结构为:cv::Mat,或者cv::Mat_等,
与Eigen的矩阵结构相互转换时主要使用函数:cv::eigen2cv和cv::cv2eigen,需要头文件:
#include<opencv2/core/eigen.hpp>
#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矩阵
矩阵 Eigen::Matrix<float,行,列>
// Eigen 中所有向量和矩阵都是Eigen::Matrix,它是一个模板类。它的前三个参数为:数据类型,行,列
// 声明一个2*3的float矩阵
Eigen::Matrix<float, 2, 3> matrix_23;//float类型
参考:https://blog.csdn.net/jqw11/article/details/97777524https://www.jianshu.com/p/23b40b0f66aa