opencv realsense 16位深度图像

时间:2017-07-14 13:30:30

标签: c++ opencv realsense

我有一个真实相机,我正在尝试读取16位深度图像。 我有一个问题 - 当我创建16位值的直接opencv垫时,我只看到黑色图像。当我将16位图像转换为具有255/1000比例的8位图像时,我得到了正常的图像,但我不想丢失该信息。

depthImage->AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_DEPTH, &depthImgData);

pxcBYTE* cpixels = depthImgData.planes[0];

Mat r_depth(frameSize, CV_16UC1, cpixels);

这是我的代码,我转换图片。

请您告诉我这种行为的原因是什么以及如何获得16位图像?

1 个答案:

答案 0 :(得分:0)

您使用哪种RealSense设备? R200,LR200,SR300或D410?

建议使用在GitHub上维护的librealsense库/ API。 将深度格式配置为RS2_FORMAT_Z16。并且,我使用下面的代码来获取16位深度数据。

auto frame = queue.wait_for_frame();

Mat depth16(Size(640, 480), CV_16U, (void*)frame.get_data(), Mat::AUTO_STEP);