用OpenCV显示D435的左右ir图像

本文介绍如何使用 Intel Realsense D435 相机配置红外流并实时显示左右红外图像。通过设置相机分辨率、帧率等参数,并利用 libRealsense 库启动红外流,最终将获取到的数据转换为 OpenCV 的 Mat 对象进行显示。
摘要由CSDN通过智能技术生成
int D435_IR()
{
int width = 1280;
int height = 720;
int fps = 30;
rs2::config config;
config.enable_stream(RS2_STREAM_INFRARED, 1, width, height, RS2_FORMAT_Y8, fps);
config.enable_stream(RS2_STREAM_INFRARED, 2, width, height, RS2_FORMAT_Y8, fps);


// start pipeline
rs2::pipeline pipeline;
rs2::pipeline_profile pipeline_profile = pipeline.start(config);


while (1) // Application still alive?
{
// wait for frames and get frameset
rs2::frameset frameset = pipeline.wait_for_frames();


// get single infrared frame from frameset
//rs2::video_frame ir_frame = frameset.get_infrared_frame();


// get left and right infrared frames from frameset
rs2::video_frame ir_frame_left = frameset.get_infrared_frame(1);
rs2::video_frame ir_frame_right = frameset.get_infrared_frame(2);


cv::Mat dMat_left = cv::Mat(cv::Size(width, height), CV_8UC1, (void*)ir_frame_left.get_data());
cv::Mat dMat_right = cv::Mat(cv::Size(width, height), CV_8UC1, (void*)ir_frame_right.get_data());


cv::imshow("img_l", dMat_left);
cv::imshow("img_r", dMat_right);
char c = cv::waitKey(1);
if (c == 's')
{


}
else if (c == 'q')
break;
}


return EXIT_SUCCESS;

}

来源:https://github.com/IntelRealSense/librealsense/issues/1140#issue-295126900

https://github.com/IntelRealSense/librealsense/wiki/API-How-To#start-streaming-with-default-configuration

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值