Realsense D435i +Opencv 获取彩色、深度、IMU数据并对齐
前言
参考realsense官方文档和各位大佬的博客,在Ubuntu18.04 系统下,得到了Realsense D435i的所有数据(如果我没猜错的话),包括它的RGB图、左右红外摄像图、深度图、IMU数据,并且将深度图数据和RGB图进行对齐。
其中IMU数据获取得有点痛苦,最后还是google了才知道怎么去提取。
没什么好说的了…… 直接上代码吧,下面都有注释。
代码的功能就是循环显示所有获得的图像和IMU数据。
源码
#include <librealsense2/rs.hpp>
// include OpenCV header file
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
#define width 640
#define height 480
#define fps 30
int main(int argc, char** argv) try
{
// judge whether devices is exist or not
rs2::context ctx;
auto list = ctx.query_devices(); // Get a snapshot of currently connected devices
if (list.size() == 0)
throw std::runtime_error("No device detected. Is it plugged in?");
rs2::device dev = list.front();
//
rs2::frameset frames;
//Contruct a pipeline which abstracts the device
rs2::pipeline pipe;//创建一个通信管道//https://baike.so.com/doc/1559953-1649001.html pipeline的解释
//Create a configuration for configuring the pipeline with a non default profile
rs2::config cfg;//创建一个以非默认配置的配置用来配置管道
//Add desired streams to configuration
cfg.enable_stream(RS2_STREAM_COLOR, width, height, RS2_FORMAT_BGR8, fps);//向配置添加所需的流
cfg.enable_stream(RS2_STREAM_DEPTH, width, height, RS2_FORMAT_Z16,fps