RealSense学习 rs-捕获样品

403 阅读1分钟

预期效果:演示如何配置相机以将深度和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;
}