DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1613万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

说明

在 opencv 中矩阵都是使用 cv::Mat 表示,但是在 slam 中使用到了 Eigen::Matrix4d 数据类型,对于它们的类型转换,可以使用 opencv 的库,代码如下:

#include <opencv2/core/eigen.hpp>
#include <Eigen/Core>

int main()
{
    cv::Mat R = cv::ones(3, 3);
    Eigen::Matrix<double, 3, 3> R_matrix;
    cv::cv2eigen(R, R_matrix); // cv::Mat 转换成 Eigen::Matrix
    cv::eigen2cv(R_matrix, R); // Eigen::Matrix 转换成 cv::Mat
}

转换过程中,它会自动的从 Eigen::Matrix 的 double 数据类型转换成 cv::Mat 的 float 类型。

原型:

void eigen2cv(const Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& src, Mat& dst)
void cv2eigen(const Mat& src, Eigen::Matrix<_Tp, _rows, _cols, _options, _maxRows, _maxCols>& dst)
 
posted on   DoubleLi  阅读(135)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2017-04-06 推荐!手把手教你使用Git
2016-04-06 u-boot 源码修改 bootcmd,IP ,BOOTARGS等参数
2014-04-06 MFC 在对话框显示图片的多种方法
点击右上角即可分享
微信分享提示