XBOX-Kinect版本经历使用过程以及各种数据流

Kinect介绍

了解Kinect

首先,先了解一下Kinect,它属于微软发售的的输入设备,是对于XBOX360体感周边外设正式发布的名字使用语音指令或手势来操作 Xbox360 的系统界面。它也能捕捉玩家全身上下的动作,用身体来进行游戏

Kinect经历了V1,V2两个版本,分别对应XBOX360以及XBOX one,后来就针对于我们这些开发者,微软发售了Kinect for Window并且也有V1,V2版本。就目前而言,对于PC,我们使用V2版本。

Kinect实际上是一组传感器的组合:

1_一个彩色摄像头;

2_一对深度摄像头(一个用以发射红外线,一个用以接收)

3_麦克风阵列,底座,马达。

   其中深度摄像头是由红外线提供的,返回画面上每个点的深度值,也就是离Kinect的距离,单位是mm,标准精度约5mm。麦克风阵列其实是数个水平放置的麦克风,因为彼此间有距离,所以可以识别说话人的方向,借此粗略估计是哪个玩家在说话,可以理解为类似声呐图。

Kinect使用过程

1_代码程序首先要发现连接的Kinect;
2_被发现连接的Kinect设备要初始化完成;
3_程序必须设置需要使用的数据流,并将其状态设为可用。也就是想要获取哪些数据(数据包括彩色数据流,深度数据流,骨骼数据流,红外数据流);
4_根据上一步的设置,获取相对于的数据流;
5_停止Kinect,释放PC资源.

介绍一下数据包



彩色数据流  

读取彩色数据流,可以获得一张1080P的图片(1920*1080);
犹如拍照应用

深度数据流

和许多输入设备不一样,Kinect能产生三维数据,它有红外发射器和摄像头,Kinect SDK从红外摄像头获取的红外数据后,对其进行计算处理,然后产生景深影像数据。
深度数据中,每个像素占16位,每个像素占两个字节,每一个像素的深度值只占用了16位中的13位,获取每一个像素的距离很容易,但是要直接使用还需要一些位操作,深度值存储在第3-15位中,要获取能够直接使用的深度需要向右移位,将游戏者索引位移除,也就是下图的PlayerIndex
                                   XBOX-Kinect版本经历使用过程以及各种数据流_第1张图片

骨骼数据流

25个关节点,每个关节点的3D空间坐标和转向








你可能感兴趣的:(XBOX-Kinect版本经历使用过程以及各种数据流)