【问题标题】:Depth Image in MatlabMatlab中的深度图像
【发布时间】:2017-08-19 21:18:18
【问题描述】:

我有一张从 Kinect V2 拍摄的深度图像,如下所示。我想在 Matlab 中提取任何特定坐标处的像素值 x 及其深度值。我在 Matlab 中使用了以下代码,但它给了我 16 位的值。但是,我不确定它是像素 x 的像素值还是深度值。

im=imread('image_depth.png');
val=im(88,116);
display(val);

Result
val= (uint16) 2977

有人能帮我吗,如何在 Matlab 中提取像素和深度值?

【问题讨论】:

    标签: matlab image-processing computer-vision kinect-v2 depth-testing


    【解决方案1】:

    图像名称暗示它是深度图。颜色图通常以不同的分辨率存储在单独的文件中,如果尚未对齐,则存在一些偏移。要对齐 RGB 和深度图像,请参阅:

    还有子链接...

    您提供的带有颜色选择器的峰值图像与内部轮廓的0x000B0B0B 颜色相同。这暗示它不是深度图,或者它的位宽太低,或者 SO+Browser 转换失去精度。如果内部的任何像素也为您返回相同的数字,则深度图不可用。

    如果您的峰值返回 16 位值,它会提示 RAW Kinect 深度值。如果有的话请看:

    否则它可能只是缩放深度,因此您可以将 x 值转换为深度,例如:

    depth = a0 + x*(a1-a0)
    

    其中<a0,a1> 是图像的深度范围,应在数据集源中的某处说明...

    【讨论】:

      【解决方案2】:

      根据您的描述和文件名,图像中每个位置的值都是深度值。

      如果您需要每个像素的实际颜色值,它们可能会存储在单独的图像文件中,希望具有相同的尺寸。

      您在这里看到的可能是使用 MATLAB 或您的图片查看软件将深度值归一化为可显示区域。

      您需要查看规范以了解像 2977 这样的值如何转换为物理世界(例如厘米)。希望它只是一个标量值,您可以乘以得到该答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-13
        • 2011-09-13
        • 1970-01-01
        • 1970-01-01
        • 2014-03-24
        • 2015-04-04
        • 2019-08-12
        • 1970-01-01
        相关资源
        最近更新 更多