读书笔记——kinect应用开发实践——sdk基础和交互设计(2)

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的数据提取出来,就可以将用户提取出来了。


    


猜你喜欢

转载自blog.csdn.net/openbug/article/details/80916121
今日推荐