深度图像,属于上层合成数据。
可以通过设置depth_mode
来改变深度图显示。
1 // Depth mode: colorful(default), gray, raw
2 params.depth_mode = DepthMode::DEPTH_RAW;
然后使用GetStreamData()
获取。另外,判断不为空后再使用。
参考代码片段:
1 auto image_depth = cam.GetStreamData(ImageType::IMAGE_DEPTH);
3 cv::Mat depth = image_depth.img->To(ImageFormat::DEPTH_RAW)->ToMat();
5 cv::setMouseCallback("depth", OnDepthMouseCallback, &depth_region);
6 // Note: DrawRect will change some depth values to show the rect.
7 depth_region.DrawRect(depth);
8 cv::imshow("depth", depth);
10 depth_region.ShowElems<ushort>(depth, [](const ushort& elem) {
11 return std::to_string(elem);
上述代码,用了 OpenCV 来显示图像。选中显示窗口时,按 ESC/Q 就会结束程序。
完整代码样例,请见get_depth.cc 。