预期效果:演示如何配置相机以将深度和RGB数据流传输和渲染到屏幕。
//引入头文件
#include<librealsense2/rs.hpp>
//这是自定义的
#include"example.hpp"
//捕获深度和彩色视频流并将其渲染到屏幕
int main(int argc, char* argv[])try
{
//
rs2::log_to_console(RS2_LOG_SEVERITY_ERROR);
//创建一个openGL窗口进行渲染
//1280*720像素
//"RealSense Capture Example"窗口名称
window app(1280, 720, "RealSense Capture Example");
//声明深度着色器以增强深度数据的颜色可视化
rs2::colorizer color_map;
//声明费率打印机以显示启用的流的流率。
rs2::rates_printer printer;
//声明RealSense管道,封装实际设备和传感器
rs2::pipeline pipe;
//使用默认的推荐配置开始流式传输
//默认视频配置包含深度和颜色流
//
pipe.start();
//应用程序还活着吗?
while (app) {
rs2::frameset data = pipe.wait_for_frames().//等待下一组画面
apply_filter(printer).//打印每个启用的流帧率
apply_filter(color_map);//查找深度数据并为其着色
//将show方法应用于框架集后,将其分解为多个框架,然后将每个框架上传到gl纹理中
//每个纹理根据其流的唯一ID显示在不同的视口上
app.show(data);
}
return EXIT_SUCCESS;
}
//捕获的rs2的异常
catch (const rs2::error & e) {
std::cerr << "RealSense error calling" << e.get_failed_function() << "(" << e.get_failed_args() << "):\n" << e.what() << std::endl;
return EXIT_FAILURE;
}
catch (const std::exception&e)
{
std::cerr << e.what() << std::endl;
return EXIT_FAILURE;
}