第一部分 Kinect基础篇 2
第1章 Kinect简介 2
1.1 什么是Kinect 2
1.2 Kinect的前世今生 3
1.3 Kinect体感交互技术原理 4
1.3.1 Kinect的结构组成 4
1.3.2 Kinect for Windows SDK简介及功能介绍 4
1.4 Kinect for Windows应用领域 5
1.5 小结 6
第2章 Kinect for Windows开发环境配置 7
2.1 开发环境需求 7
2.2 配置开发环境 8
2.3 Kinect for Windows SDK技术架构 9
2.4 小结 10
第二部分 Kinect开发篇 12
第3章 Kinect彩色和红外图像数据的处理 12
3.1 彩色图像的格式 12
3.2 红外数据流 13
3.3 实例1——调用API获取彩色图像数据和红外图像,并实现静态图像的抓取 13
3.4 小结 18
第4章 Kinect深度数据的处理 19
4.1 深度数据的结构 19
4.2 实例2——调用API获取深度数据,并对不同深度值着以不同颜色 19
4.3 小结 24
第5章 Kinect骨骼追踪数据的处理方法 25
5.1 骨骼追踪数据的结构 25
5.2 半身模式 26
5.3 骨骼追踪数据的获取方式 26
5.4 实例3——调用API获取骨骼数据并实时绘制 27
5.5 骨骼点旋转信息 32
5.5.1 骨骼点旋转信息存储方式 32
5.5.2 在骨骼数据回调函数中获取骨骼点旋转信息 34
5.5.3 综述 34
5.6 实例4——使用Kinect控制PPT播放 34
5.7 小结 38
第6章 音频API的使用 39
6.1 关于Kinect麦克风阵列 39
6.2 实例5——记录一段音频流,并监视音频源方向 40
6.3 实例6——调用语音API,实现语音识别小程序 43
6.4 小结 48
第7章 Kinect for Windows Developer Toolkit介绍 49
7.1 安装Kinect for Windows Developer Toolkit 49
7.2 Kinect Studio简介 51
7.2.1 打开Kinect Studio并链接应用 51
7.2.2 记录并回放Kinect数据流 52
7.2.3 保存和载入Kinect数据流 54
7.3 Face Tracking SDK简介 55
7.3.1 Face Tracking SDK主要功能 55
7.3.2 Face Tracking SDK使用方法 57
7.4 实例7——使用Face Tracking SDK识别人脸 57
7.4.1 新建项目并添加引用 57
7.4.2 初始化Kinect数据流 60
7.4.3 获取数据并传入Face Tracking 60
7.5 小结 64
第8章 Kinect常用类库介绍 65
8.1 Coding4Fun Kinect Toolkit介绍 65
8.1.1 基于图像数据的扩展方法 65
8.1.2 基于骨骼数据的扩展方法 67
8.2 Kinect Toolbox类库 67
8.2.1 Kinect Toolbox简介 67
8.2.2 人体姿态识别 68
8.2.3 手势识别 72
8.2.4 模板识别 74
8.2.5 语音识别 76
8.2.6 添加自定义姿态 76
8.3 小结 79
第三部分 Kinect实战篇 82
第9章 Kinect虚拟演示系统的实现 82
9.1 虚拟演示系统简介 82
9.2 技术实现概述 83
9.3 利用深度数据标签获取人物彩色图像 84
9.3.1 创建人物抠图类 84
9.3.2 利用深度数据获取人物彩色图像 84
9.3.3 修补、优化并完善抠图类 89
9.3.4 利用Kinect SDK抠图的优、缺点 91
9.4 利用骨骼数据识别人体姿态 91
9.4.1 利用Toolbox实现主体识别功能 91
9.4.2 自然交互方式设计 95
9.4.3 Kinect自然交互小结 97
9.5 演示系统简介 98
9.5.1 预备知识 98
9.5.2 Kinect状态类 99
9.5.3 Kinect轮询类 101
9.5.4 演示框架小结 104
9.6 小结 105
第10章 Kinect虚拟放风筝项目的实现 106
10.1 Kinect虚拟放风筝项目简介 106
10.2 技术实现概述 107
10.3 玩家姿势的设计和识别 107
10.3.1 玩家姿势的设计 107
10.3.2 玩家姿势识别的实现 110
10.4 自然交互按钮和光标的实现 112
10.4.1 自定义光标 113
10.4.2 自定义按钮 114
10.5 风筝动画的实现 117
10.6 项目操作流程 119
10.7 小结 123
第11章 Kinect全息显示 124
11.1 Kinect全息显示简介 124
11.2 技术实现概述 124
11.3 Kinect捕捉头部坐标 126
11.3.1 创建用于捕捉头部位置的Kinect组件类 126
11.3.2 Kinect初始化以及头部位置获取 127
11.3.3 根据Kinect和屏幕的位置关系转换坐标 129
11.4 三维图形引擎 131
11.4.1 创建可见模型绘制类 131
11.4.2 构建模型世界矩阵 131
11.4.3 绘制模型 133
11.5 根据头部位置更新绘制图像 134
11.5.1 修改视图矩阵 135
11.5.2 修改投影矩阵 136
11.6 小结 139
第12章 基于Kinect的自主移动机器人的设计与实现 140
12.1 KRobot项目简介 141
12.2 技术实现概述 141
12.3 利用深度数据进行摄像机标定 142
12.4 利用深度数据实现障碍规避 143
12.4.1 获取彩色图和深度图数据 144
12.4.2 处理深度图和深度数据 146
12.4.3 制定障碍物判定规则 148
12.4.4 制定机器人避障规则 151
12.5 利用骨架数据实现人体跟踪 152
12.6 利用麦克风进行声音定位 154
12.7 完善人机交互演示系统 156
12.8 小结 158
附录A Kinect for Windows SDK类、结构类型和枚举类型 159