我在查找有关如何使用深度图/图像来获取到障碍物的距离的任何信息时遇到了问题。
TLDR:我有一个作为 OpenCV Mat 的深度图,我知道它是 CV_16UC1,但我不知道如何从它获取距离。
我有一个 Intel Realsense D415 摄像头,我已经安装了 SDK、ROS 包装器,我发布了一个包含深度图的主题。 (/相机/深度/image_rect_raw)
接下来,我用 C++ 编写了一个小程序,使用 cv_bridge 将图像转换为 OpenCV 图像,并将其显示在窗口中,因此我知道它正在运行。 (图片:https://i.imgur.com/QyKWp2J.png)
现在我需要得到它的距离,我不知道该怎么做,也没有找到帮助。 我想我只想使用图像的上半部分或 2/3,因为相机的安装方式,所以下三分之一/一半将只包含地板/地面。
我觉得为了完成这项工作我缺少了一些重要而简单的东西,但我真的不知道现在该做什么。
最佳答案
如果你有一个深度图并且你想从中生成 3D 点,你可以使用 reprojectImageTo3D() OpenCV的功能。
在此之前,您需要有视差到深度映射矩阵,可以使用stereoRectify() 获得。功能。
关于c++ - 使用深度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51728827/