目录
IntelRealSense系列SDK开发
RealSense系列深度传感器由Intel公司开发的消费级深度相机,需使用SDK对其进行开发,主要是了获得其传感器数据。
Samples
其中,
- im-show 提供支持OpenCV的数据接口与显示程序
- motion 展示了如何从获取数据中解析陀螺仪与加速计的读数,即IMU数据,并以此展示相机位姿。
- callback 展示了如何通过回调函数,同时获取同步过的图像数据流,与不同步的IMU数据流。
获取数据基本流程
获取同步数据:深度/彩色
创建管线(pipeline)
rs2::pipeline pipe_sync;
配置(config)通过enable/disable函数控制数据流
// only enable the video frames
rs2::config cfg_sync;
//cfg.enable_stream(RS2_STREAM_COLOR, 1920, 1080, RS2_FORMAT_ANY, 30);
cfg_sync.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_BGR8, 30);
cfg_sync.enable_stream(RS2_STREAM_DEPTH, 640, 480, RS2_FORMAT_Z16, 30);
cfg_sync.disable_stream(RS2_STREAM_ACCEL);
cfg_sync.disable_stream(RS2_STREAM_GYRO);
启动管线
pipe_sync.start(cfg_sync);
获取同步数据
while (true)
{
rs2::frameset data = pipe_sync.wait_for_frames(); // Wait for next set of frames from the camera
// color
rs2::frame color = data.get_color_frame();
// convert to OpenCV
const int w_clr = color.as<rs2::video_frame>().get_width();
const int h_clr = color.as<rs2::video_frame>().get_height();
Mat color_img(Size(w_clr, h_clr), CV_8UC3, (void*)color.get_data(), Mat::AUTO_STEP);
// depth is related to depth_scale
rs2::depth_frame depth = data.get_depth_frame();
const int w = depth