我有一个将rs2 :: pipeline作为参数的函数,并且我有多个D435和T265试图访问该函数。我想根据调用该函数的相机显示不同的信息,以便如何通过rs2 :: pipeline对象获取有关相机的信息。
rs2 :: device的get_info方法提供了有关相机的信息,但是我不确定如何从rs2 :: pipeline引用rs2 :: device。
void RenderCamera(rs2::pipeline pipe,int id){
//Display the camera information here from the rs2::pipeline object
...
...
...
imshow("Rendered_Window",frame_mat);
}
我想在这里看到的结果是一个简单的调试语句,它为我提供了设备的信息。
答案 0 :(得分:0)
rs::device
是获取设备信息所必需的,以下是获取摄像机信息的一种方法。对于此设备,需要启动和停止捕获,这是开销,如果已经开始捕获该设备,则可能导致一些副作用。始终牢记调用RenderCamera
函数的上下文。
void RenderCamera(rs2::pipeline pipe,int id){
rs2::config config;
rs2::pipeline_profile pipeline_profile = pipeline.start(config); // camera starts capturing
pipeline_profile = pipeline.start(config);
rs2::device rs_dev = pipeline_profile.get_device();
std::cout <<"Device Name"<<": "<< rs_dev.get_info(RS2_CAMERA_INFO_NAME)<<std::endl;
std::cout <<"Firmware Version"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_FIRMWARE_VERSION)<<std::endl;
std::cout <<"Serial Number"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_SERIAL_NUMBER)<<std::endl;
std::cout <<"Product Id"<<": "<<rs_dev.get_info(RS2_CAMERA_INFO_PRODUCT_ID)<<std::endl;
pipeline.stop(); // camera stops capturing
----
----
}