【OpenREALM学习笔记:11】关于位姿矩阵从Sophus库的SE3类型转换为OpenCV库的Mat类型

cpp 复制代码
#include <Eigen/Core>
#include <Eigen/Dense>

#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>

cv::Mat Tcw;
Sophus::SE3f  Tcw_SE3f = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec());
Eigen::Matrix4f Tcw_Matrix = Tcw_SE3f.matrix();
cv::eigen2cv(Tcw_Matrix, Tcw);

第一行:声明一个OpenCV的Mat类型对象,用以存储相机在世界坐标系下的变换矩阵。Tcw表示从世界坐标系到相机坐标系的变换矩阵;

第二行:从SLAM系统中追踪单目相机的运动并获取位姿,而后将其存储在一个Sophus库的SE3f对象当中Tcw_SE3f当中。SE3f表示的是一个欧式群的单精度浮点类型,用以表示三维的旋转和平移;

第三行:将第二行的SE3f对象转换为4x4的浮点数矩阵,并将其赋值给Eigen::Matrix4f类型的矩阵对象;

第四行:这行代码主要用于将Eigen库的矩阵变换为OpenCV库的矩阵。

这里需要注意一点:在头文件的声明的时候,Eigen头文件的声明要放在opencv的eigen.hpp之前;否则,eigen.hpp头文件在程序运行的时候,会出现Eigen::XXXXXXX未定义的情况。

相关推荐
魔法阵维护师3 分钟前
从零开发游戏需要学习的c#模块,第三十二章(Boss 战系统)
学习·游戏·c#
洵有兮4 分钟前
Shell 脚本编程学习总结(基础 + 变量 + 条件 + 流程控制 + 函数数组)
linux·学习
疯狂打码的少年7 分钟前
流水线冒险(结构冒险/数据冒险/控制冒险)
笔记
吃好睡好便好9 分钟前
矩阵的左乘和右乘
人工智能·学习·线性代数·算法·matlab·矩阵
我命由我1234512 分钟前
SEO 与 GEO 极简理解
java·linux·运维·开发语言·学习·算法·运维开发
段一凡-华北理工大学21 分钟前
工业领域的Hadoop架构学习~系列文章04:YARN资源调度架构
人工智能·hadoop·学习·架构·系统架构·高炉炼铁·高炉炼铁智能化
问心无愧051330 分钟前
ctf show web入门261
android·前端·笔记
智者知已应修善业36 分钟前
【分立元件OCL电路】2024-5-17
驱动开发·经验分享·笔记·硬件架构·硬件工程
爱上好庆祝36 分钟前
学习JS第十二天
学习
学计算机的计算基1 小时前
LeetCode刷题笔记:数组专题四连击(LC53/56/189/41)
笔记·leetcode·排序算法