我有一个真实相机,我正在尝试读取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位图像?
答案 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);