【问题标题】:Convert kinect depth intensity to distance in meter将 kinect 深度强度转换为以米为单位的距离
【发布时间】:2019-06-03 12:18:35
【问题描述】:

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

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

- 1.0 / (raw_depth * -0.0030711016 + 3.3309495161)  
- 0.1236 * tan(rawDisparity / 2842.5 + 1.1863)

我也尝试使用以下方法获取原始数据:

raw = (255 - depthIntensity)/256*2047

我该如何解决这个问题?

【问题讨论】:

    标签: computer-vision kinect


    【解决方案1】:

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

    在下面的数学形式中,这就是我们如何根据视差找到深度

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

    【讨论】:

    • 我的问题不在于计算深度,而是如何将深度图像的深度强度值(0-255)解释为以米为单位的距离。
    • 0-255 是存储在视差图像中的值,即 uchar 或 uint8。您需要通过 Z=B*f/视差深度将米或毫米深度转换为实数图像是浮点或双图像,不容易通过 USB 传输。除非我用中文发帖你不懂,否则就是你如何将0-255转换为0-N米范围
    • 对不起,我之前误解了你。谢谢你的建议,我试试你的方法。
    猜你喜欢
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2013-09-16
    • 2013-07-30
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多