[译]Kinect for Window s SDK 开发入门(二):基础知识 上 上篇文章介绍了Kinect 开发的环境配置,这篇文章和下一篇文章将介绍Kinect 开发的基本知识,为深入研究Kinect for Windows SDK 做好基础。 每一个 Kinect 应用都有一些基本元素。应用程序必须探测和发现链接到设备上的Kinect 传感器。在使用这些传感器之前,必须进行初始化,一旦初始化成功后,就能产生数据,我们的程序就能处理这些数据。最后当应用程序关闭是,必须合理的释放这些传感器。 本文第一部分将会介绍如何探测初始化几释放传感器,这是非常基础的话题,但是对于基于 Kinect 开发的应用程序非常重要。一旦初始化好了之后,Kinect 的各种传感器就能够产生数据。我们的程序可以读取这些数据流。Kinect 产生的数据流类类似于 System.IO命名空间下面的IO 数据流。 第二部分将详细介绍数据流的基础,并演示如何从 Kinect 中使用 ColorImageStream 获取彩色摄像头产生的数据。数据流能够生产基于像素的数据,使得能够像从相机或者基本的相片那样生产彩色图像。可以对这些数据进行各种有趣的处理。 本文是整个 Kinect SDK 开发的基础部分,了解了这些之后,对于熟悉 SDK 中其他部分比较有帮助。 1. Kinect 传感器 基于 Kinect 开发的应用程序最开始需要用到的对象就是 KinectSensor 对象,该对象直接表示 Kinect 硬件设备。KinectSensor对象是我们想要获取数据,包括彩色影像数据,景深数据和骨骼追踪数据的源头。本文将详细介绍ColorImageStream,后面的文章将详细讨论 DepthImageStream 和SkeletonStream。 从 KinectSensor 获取数据最常用的方式是通过监听该对象的一系列事件。每一种数据流都有对应的事件,当改类型数据流可用时,就会触发改时间。每一个数据流以帧(frame)为单位。例如:ColorImageStream 当获取到了新的数据时就会触发ColorFrameReady事件。当在讨论各个具体的传感器数据流是我们将会详细讨论这些事件。 每一种数据流(Color,Depth,Skeleton)都是以数据点的方式在不同的坐标系中显示的,在后面的讨论中我们能够清楚的看到这一点。将一个数据流中的点数据转换到另一个数据流中是一个很常见的操作,在本文的后面将会讨论如何转换以及为什么这种转换很有必要。KinectSensor 对象有一些列的方法能够进行数据流到数据点阵的转换,他们是 MapDepthToColorImagePoint,MapDepthToSkeletonPoint 以及 MapSkeletonP...