Matlab中的深度图像

时间:2017-08-19 21:18:19

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

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

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

Result
val= (uint16) 2977

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

Depth Image

2 个答案:

答案 0 :(得分:1)

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

和子链接......

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

如果您的峰值返回16位值,则会提示RAW Kinect 深度值。如果案件见:

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

depth = a0 + x*(a1-a0)

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

答案 1 :(得分:0)

根据您的说明和文件名,图片中每个位置的值都是深度值。

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

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

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