Computer vision 将kinect深度强度转换为以米为单位的距离

Computer vision 将kinect深度强度转换为以米为单位的距离,computer-vision,kinect,Computer Vision,Kinect,我正在处理kinect v1的深度图像。 如何找到每个像素对应深度强度值的距离(以米为单位)? 强度值的范围为0-255,因为它是灰度图像,我没有原始深度数据 我尝试了各种方法来获得距离,例如使用以下公式: - 1.0 / (raw_depth * -0.0030711016 + 3.3309495161) - 0.1236 * tan(rawDisparity / 2842.5 + 1.1863) 我还尝试使用以下方法获取原始数据: raw=(255-深度)/256*2047 如何解决此

我正在处理kinect v1的深度图像。 如何找到每个像素对应深度强度值的距离(以米为单位)? 强度值的范围为0-255,因为它是灰度图像,我没有原始深度数据

我尝试了各种方法来获得距离,例如使用以下公式:

- 1.0 / (raw_depth * -0.0030711016 + 3.3309495161)  
- 0.1236 * tan(rawDisparity / 2842.5 + 1.1863)
我还尝试使用以下方法获取原始数据:

raw=(255-深度)/256*2047


如何解决此问题?

Kinect实际上通过USB发送类似于视差图像的内容。OpenNI和libfreenect都能够使用设备报告的参数(基线、焦距和到参考平面的距离,IIRC)将其转换为深度图像。e、 g CV_CAP_PROP_OPENNI_基线

在下面的数学表格中,这是我们如何根据差异找到深度的

深度=基线*焦距/视差。深度应与当前图像帧的Z轴相对应


我的问题不是计算深度,而是如何将深度图像中的深度强度值(0-255)解释为以米为单位的距离。0-255是存储在视差图像(也称为uchar或uint8)中的值。您需要通过Z=B*f转换为米或毫米深度的真实图像/视差深度图像是浮点或双精度图像,不容易通过USB传输。除非我是用中文发的,你不明白,否则这就是你如何将0-255米转换成0-N米的范围哦,对不起,我刚才误解了你。谢谢你的建议,我会试试你的方法。