kinect for widowns SDK基础和交互设计
SDK基础
书中使用的是kinect for widowns SDK v1.5。它的核心是NUI API,提供了:图像数据流、深度数据流、音频数据流、骨骼跟踪、语音识别(不支持中文)等API。
一、api使用流程如下:
1、获取kinect.
一台电脑可以连接4个kinect,所要sdk要获取一个可用的kinect,Linq代码如下:
KinectSensor sensor=(from sensorToCheck inKinetSensor.KinectSensors
where sensorToCheck.Status == KinectStatus.Connected
select sensorToCheck).FirstoORDefault();
2、 调用KinectSensor.Start;连接到kinect.
3、注册获取数据的事件.
KinectSensor.ColorFrameReady //获取视频流事件
KinectSensor.DepthFrameReady //获取深度流事件
KinectSensor.SkeletonFrameReady //获取骨骼跟踪事件 ,这个会大大加重cpu的占有率。
KinectSensor.AllFrameReady //一次获取以上三个流的事件
4、KinectSensor .Stop //关闭kinect
二、数据格式
1、深度流是一系列深度图像组成,每一张深度图像中的一个像素点是由2个字节。2个字节就是16位, 左边13位是红外接收器与最近物体的距离,以mm为单位。 右边3位表示用户索引编号,其值从000-111(0-7),000表示没有用户,kinect sdk最多支持6个用户,并为这些值定义了堂量,DepthImageFrame.PlayerIndexBitmaskWidth(实际值为3),DepthImageFrame.PlayerIndexBitmask(实际值为7,用于位运算),使用时要使用常量。
上面只要将用户编号不为000的数据提取出来,就可以将用户提取出来了。