Kinect是美国微软公司于2010年11月推出的XBOX 360游戏机体感周边外设的正式名称。它是一种3D体感摄影机,利用即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能,让玩家能够摆脱传统游戏手柄的束缚,通过自己的肢体控制游戏,并且与互联网玩家进行互动,分享图片、影音信息。
《Kinect体感程序设计入门(使用C#和C++) 》不仅讲解了Kinect设备的开发细节、SDK架构,更有不少篇幅在介绍色彩、影像、视觉等专业知识,使读者在学完《Kinect体感程序设计入门(使用C#和C++) 》之后能立即开始设计Kinect for Windows 的应用程序。
虽然Kinect for Windows的SDK发展时间不算长,但已经有许多有趣的应用,例如医疗保健、手术训练、教育互动等。这些都证明了只要您有想法,目前的Kinect设备及SDK都能帮助您实现梦想。
Kinect最早运用在Xbox 360的体感游戏上,让玩家能够用自己的身体操控游戏,不再受游戏控制器的束缚。Kinect for Xbox上市后,获得了广大的市场反响,微软公司乘胜追击,推出Kinect for Windows设备,促使Kinect脱离游戏机专用的范畴,由此开发人员得以将Kinect与各种PC结合,开发出更多应用。功能更强大的Kinect One上市后,将以更精确的感测技术与算法继续引领体感控制潮流。 目前开发Kinect应用程序的方法大致分为微软官方Kinect for Windows SDK和OpenNI两种。OpenNI必须采用C/C++开发,进入门槛较高;而Kinect for Windows SDK弹性较大,除了C/C++之外,还可选用其他任何.NET平台上的程序设计语言,本书使用的是使用率较高的C#语言,同时辅以少量的PowerShell、C++范例,让读者体验Kinect开发的多样性和丰富性。 以微软官方Kinect for Windows SDK 1.7为基础,该版本SDK的Kinect交互函数库(Kinect Interaction)支持对握拳(Grip)、按压(Push)手势的侦测融入大量官方Kinect人机接口导览(Human Interface Guidelines)中的内容,藉此提升Kinect范例程序的质量。Kinect体感程序设计并非只是单纯地编写程序代码,还需要考虑用户使用时的距离和感受针对图形用户界面(GUI)如何整合体感程序设计,作者编写了专门章节进行介绍,内容包括通过Kinect控制鼠标和Windows应用程序使用C#、PowerShell、C++开发范例程序。部分章节介绍了OpenNI 2.x的相关知识?涉及增强现实(Augmented Reality,AR)应用程序的开发,且融入部分WPF动画效果,Kinect内建加速度感应器的应用,Kinect语音识别和语音合成,Kinect彩色图像处理及应用,Kinect深度图像处理及应用,Kinect骨架信息处理及应用.
王森是台湾微软Kinect技术的首席讲师,精通Kinect设备的细节和SDK架构,熟悉色彩、影像、视觉等专业开发知识,是一位活跃的网络社区风云人物、技术图书作家和书评家。
Chapter 1 购买合适的Kinect硬件
1-1│市售的Kinect硬件2
1-2│Kinect硬件4
1-3│Kinect for Windows硬件专属功能5
1-4│使用Kinect for Xbox进行开发5
1-5│Kinect的计算结果6
1-6│Kinect的“兄弟”7
1-7│总结9
Chapter 2 Kinect开发概览
2-1│Kinect、驱动程序与执行环境11
2-2│Kinect与应用程序执行环境13
2-3│解析Kinect硬件14
2-4│深度图像15
2-5│Kinect具备的能力17
2-6│微软官方SDK19 Chapter 1 购买合适的Kinect硬件
1-1│市售的Kinect硬件2
1-2│Kinect硬件4
1-3│Kinect for Windows硬件专属功能5
1-4│使用Kinect for Xbox进行开发5
1-5│Kinect的计算结果6
1-6│Kinect的“兄弟”7
1-7│总结9
Chapter 2 Kinect开发概览
2-1│Kinect、驱动程序与执行环境11
2-2│Kinect与应用程序执行环境13
2-3│解析Kinect硬件14
2-4│深度图像15
2-5│Kinect具备的能力17
2-6│微软官方SDK19
2-7│程序语言与开发框架的选择20
2-8│Kinect参考书籍26
2-9│参考网站与文章28
Chapter 3 安装Kinect for Windows SDK
3-1│下载SDK31
3-2│SDK分为两个部分32
3-3│SDK安装前34
3-4│安装SDK35
3-5│安装Kinect 38
3-6│使用OpenNI 2.x快速体验Kinect40
3-7│安装Developer Toolkit41
3-8│测试Kinect设备43
3-9│Kinect硬件的差异44
3-10│范例47
Chapter 4 Kinect开发初体验
4-1│操控Kinect61
4-2│Kinect硬件特性62
4-3│使用Developer Toolkit Browser64
4-4│使用Kinect Studio65
4-5│Kinect硬件与.NET的连接68
4-6│Kinect硬件与C++的连接69
4-7│范例70
Chapter 5 声音处理
5-1│Kinect的声音来源87
5-2│Kinect的声音API89
5-3│范例90
Chapter 6 语音识别与语音合成
6-1│语音99
6-2│Kinect的语音API99
6-3│语音识别引擎102
6-4│范例103
Chapter 7 图形界面Kinect应用程序
7-1│窗口框架(Framework)的选择118
7-2│Kinect传感器图像信息118
7-3│使用Web技术作为图形显示121
7-4│使用其他平台作为图形显示121
7-5│范例122
Chapter 8 Kinect交互
8-1│Kinect提供的数据流142
8-2│位置、方位与交互模式142
8-3│交互距离144
8-4│骨架追踪145
8-5│骨架信息流148
8-6│交互模式150
8-7│控制Windows应用程序151
8-8│控制鼠标152
8-9│Kinect交互152
8-10│范例156
Chapter 9 彩色图像处理
9-1│彩色图像流176
9-2│Kinect传回的彩色图像177
9-3│只有手势是不够的178
9-4│彩色图像流相关类179
9-5│范例181
Chapter 10 深度图像处理与应用
10-1│深度图像流200
10-2│深度图像数据201
10-3│近距离模式203
10-4│整合事件的处理205
10-5│范例206
Chapter 11 骨架追踪与应用
11-1│Kinect的骨架追踪功能231
11-2│关节方位232
11-3│Kinect交互函数库结合WPF235
11-4│范例236