首页 > 解决方案 > Kinect V2 vs PyKinect2:深度图像之间的差异

问题描述

我目前正在开发 kinect V2 以访问深度图像。我使用 python PyKinect2 中的库来帮助我获得这些图像。

我的第一个问题是:

-> 我运行 KinectStudio 2,并寻找深度图像,我寻找 PyKinect2 的实现,我有一个不同的图像。这怎么可能?

-> 要访问称为 X(x,y) 的特定点的深度,我使用 MapColorFrameToDepthSpace 方法,并且我设法获得一些坐标来帮助我获得深度框架上的距离。这种说法正确吗?

获取深度图像:

 def draw_depth_frame(self, frame):
     depth_frame = frame.reshape((424, 512,-1)).astype(np.uint8)
     return depth_frame

来自 kinect 2 的图像:

Kinect Studio 的 Kinect 图像深度

来自 kinect 2 的带有色带的图像:

来自 kinect 2 的带有色带的图像

来自 pyKinect 2 的图像

pyKinect 2

真挚地,

标签: python-3.xkinect-v2

解决方案


我发现我的错误,

当我使用这个

depth_frame = frame.reshape((424, 512,-1)).astype(np.uint8)

这条线实际上是错误的。

深度不是映射到 uint8,而是映射到 uint16。

通过执行重塑,我“丢失”了关于距离的信息,我只有 255 的值,所以不是很有用。

例如:1600 作为距离,被认为是 255,因为这条线,它给了我上一篇文章中的第三个深度图像。所以更正很简单:

depth_frame = frame.reshape((424, 512,-1)).astype(np.uint16)

推荐阅读