eigen 与 opencv 矩阵的相互转换
需要包含以下头文件:
#include <Eigen/Dense>
#include <Eigen/Core>
// eigen 头文件必须放在 opencv 前面
#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>
然后使用 cv::cv2eigen
和 cv::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;
}
本文作者:Wreng
本文链接:https://www.cnblogs.com/wreng/p/15917926.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步