参考链接:
https://blog.csdn.net/chengde6896383/article/details/83448882整体概括了Eigen库中的Matrix类与OpenCV中的Mat类转换过程中的注意事项,尤其是在使用两个不同的第三方依赖库时,头文件的引入顺序很重要,其次就是转换方法。
https://blog.csdn.net/piaoxuezhong/article/details/79110421该博客对Eigen库的使用、Matrix类、Matrix和opencv中Mat的转换,以及与MATLAB中的矩阵操作进行对比,介绍非常详细,值得参考!!
1、首先包含头文件(先包含Eigen相关库,再包含opencv库)
#include <Eigen/Core>
#include <opencv2/core/eigen.hpp>
2、Eigen与OpenCV之间的交互(Eigen<----->OpenCV)
opencv矩阵结构为:cv::Mat,或者cv::Mat_等,当需要与eigen的矩阵结构相互转换时主要使用函数:
cv::eigen2cv和cv::cv2eigen,需要头文件:#include<opencv2/core/eigen.hpp>
opencv–>eigen:
eigen–>opencv:
补充:
eigen与matlab函数的对应关系可参考https://blog.csdn.net/piaoxuezhong/article/details/79110421
#include <Eigen/Dense>
// 基本用法
// Eigen // Matlab // 注释
x.size() // length(x) // 向量的长度
C.rows() // size(C,1) // 矩阵的行数
C.cols() // size(C,2) // 矩阵的列数
x(i) // x(i+1) // 访问向量元素(Matlab的下标从1开始计数)
C(i,j) // C(i+1,j+1) // 访问矩阵元素
A << 1, 2, 3, // 初始化A&#