前 言
第一部分 基礎篇
第1章 自然人機交互 2
1.1 什麼是自然交互 2
1.2 科幻電影場景的人機交互 3
1.3 自然人機交互技術發展現狀 4
1.4 本章小結 8
第2章 Xtion硬件設備 9
2.1 Xtion設備簡介 9
2.1.1 Xtion設備的類型 9
2.1.2 Xtion設備的功能 10
2.1.3 Xtion設備的規格 10
2.2 Xtion設備的優勢 11
2.2.1 Xtion和Kinect的區彆 11
2.2.2 硬件設備的軟件支持 12
2.3 深度感應器原理 14
2.3.1 感應器架構 14
2.3.2 深度感應器工作原理 15
2.3.3 深度精確度分析 16
2.3.4 無法偵測物體深度 17
2.4 本章小結 19
第3章 OpenNI開發方案 20
3.1 初識OpenNI 20
3.1.1 OpenNI架構 20
3.1.2 OpenNI支持的模塊 22
3.1.3 OpenNI的功能 23
3.1.4 OpenNI中的對象 24
3.1.5 OpenNI版本更新說明 25
3.2 OpenNI生産節點 27
3.2.1 生産節點的類型 28
3.2.2 生産節點概念圖 28
3.2.3 生成和讀取數據 30
3.2.4 OpenNI接口的配置 31
3.3 OpenNI應用 31
3.3.1 Xtion Controller應用 31
3.3.2 INOUT應用 31
3.3.3 Artec Studio應用 31
3.3.4 體感技術在初音未來上的應用 33
3.4 本章小結 33
第二部分 準備篇
第4章 Xtion開發準備工作 36
4.1 下載OpenNI及相應程式 36
4.1.1 下載SDK 36
4.1.2 下載Middleware 37
4.1.3 下載OpenNI以及相應的NITE 38
4.2 安裝OpenNI 38
4.2.1 Windows環境下的準備工作 38
4.2.2 OpenNI檔案及相關環境 39
4.2.3 加載設備驅動 40
4.2.4 檢測Xtion設備 40
4.2.5 NiViewer基本控製方法 41
4.3 使用Xtion的注意事項 41
4.4 本章小結 42
第5章 搭建基礎的Xtion體感開發環境 43
5.1 創建控製颱工程 43
5.2 配置工程OpenNI環境 45
5.3 本章小結 49
第6章 初識Xtion體感開發 50
6.1 OpenNI基礎應用 50
6.1.1 上下文對象初始化 50
6.1.2 創建生産節點 51
6.1.3 使用XML文檔中的生産節點 52
6.1.4 錯誤信息返迴 53
6.1.5 開始産生數據 54
6.1.6 停止産生數據 54
6.1.7 上下文對象資源釋放 55
6.1.8 更新數據 55
6.1.9 鏡像設置 56
6.1.10 圖像位置校正 57
6.2 圖生成器 58
6.2.1 獲取支持圖輸齣模式 58
6.2.2 圖生成器輸齣模式 59
6.2.3 獲取和設置圖輸齣模式 59
6.2.4 獲取圖像素字節數 60
6.3 深度生成器 61
6.3.1 獲取深度元數據對象 61
6.3.2 獲取深度圖 61
6.3.3 獲取設備最大深度 62
6.3.4 獲取設備視野範圍 62
6.3.5 絕對坐標和相對坐標轉換 63
6.3.6 獲取用戶位置功能 64
6.4 用戶生成器 64
6.4.1 獲取用戶數量 65
6.4.2 獲取用戶 65
6.4.3 獲取用戶質心 66
6.4.4 獲取用戶像素 66
6.4.5 注冊用戶迴調函數 67
6.4.6 獲取骨架功能 68
6.4.7 獲取姿勢偵測功能 68
6.5 場景分析器 69
6.5.1 獲取場景元數據對象 69
6.5.2 獲取場景地闆 69
6.5.3 獲取場景標識段 70
6.6 圖生成器的概念及功能 70
6.6.1 圖元數據對象 71
6.6.2 輸齣模式設定 72
6.7 OpenNI程序流程 73
6.7.1 初始化Context 75
6.7.2 建立Production Node 75
6.7.3 開始産生資料 75
6.7.4 更新、讀取資料 76
6.7.5 處理讀取的資料 76
6.7.6 結束和錯誤偵測 76
6.8 本章小結 77
第三部分 進階篇
第7章 人體骨架追蹤 80
7.1 坐標係 80
7.1.1 絕對坐標 80
7.1.2 相對坐標 81
7.1.3 相對坐標和絕對坐標的轉換 81
7.2 關節 82
7.2.1 OpenNI可偵測的關節點 82
7.2.2 讀取關節資料函數 83
7.2.3 關節位置的平滑化 84
7.3 人體骨架追蹤流程 85
7.3.1 需要特定姿勢的骨架追蹤 85
7.3.2 不需要特定姿勢的骨架追蹤 86
7.3.3 使用現有校正資料 87
7.4 人體骨架追蹤程序搭建流程 87
7.4.1 創建並初始化設備上下文 88
7.4.2 創建並設定生産節點 88
7.4.3 注冊迴調函數 89
7.4.4 開始偵測數據 92
7.4.5 更新數據 92
7.4.6 得到用戶信息 93
7.5 人體骨架識彆範例 94
7.6 本章小結 97
第8章 手勢識彆與手部追蹤 98
8.1 手勢識彆原理 99
8.1.1 OpenNI支持的手勢 99
8.1.2 遍曆NITE支持的手勢 99
8.1.3 添加手勢與迴調函數 99
8.1.4 手勢識彆範例 102
8.2 NITE控製 104
8.2.1 NITE Control函數詳解 104
8.2.2 NITE Control範例 106
8.3 手部追蹤原理 110
8.3.1 手心生成器迴調函數注冊 110
8.3.2 手部追蹤初始化 110
8.4 本章小結 111
第9章 錄製與重播 112
9.1 錄製 112
9.1.1 創建錄製器 113
9.1.2 設置錄製目標檔案 113
9.1.3 獲取錄製目標檔案 113
9.1.4 添加錄製節點 114
9.1.5 刪除錄製節點 114
9.2 重播 115
9.2.1 設置重復播放 115
9.2.2 設置和獲取播放源資料 115
9.2.3 設置重播起始時間 116
9.2.4 獲取當前播放位置信息 117
9.2.5 檢索播放器中的節點 118
9.2.6 判斷是否播放結束 118
9.2.7 注冊播放到結尾事件迴調函數 118
9.2.8 設置迴放速率 119
9.3 本章小結 119
第10章 限製生産節點的建立條件 120
10.1 有條件地建立生産節點 120
10.1.1 添加限製條件 121
10.1.2 設置限製條件 121
10.1.3 建立生産節點 121
10.2 通過限製條件列舉符閤條件的生産節點 122
10.3 根據節點信息建立生産節點 122
10.4 本章小結 123
第11章 使用XML文檔初始化 124
11.1 XML文檔設定參數 124
11.1.1 XML文檔基本架構 124
11.1.2 XML文檔中的節點 126
11.1.3 XML文檔使用範例 127
11.2 使用XML文檔配置功能 128
11.2.1 強製錄製ONI文檔的XML配置 128
11.2.2 資料産生 129
11.3 本章小結 129
第12章 聲音數據的獲取與使用 130
12.1 聲音生成器 130
12.1.1 創建聲音生成器 130
12.1.2 獲取聲音數據 131
12.1.3 設置聲音設備的輸齣模式 132
12.1.4 注意事項 132
12.2 聲音數據的處理 132
12.2.1 聲音錄製 133
12.2.2 聲音播放 134
12.3 本章小結 136
第13章 彩色圖像的獲取和貼圖 137
13.1 OpenNI框架支持的圖像格式 137
13.2 圖像生成器 138
13.2.1 創建圖像生成器 138
13.2.2 獲取圖像數據 139
13.2.3 設置及獲取圖像生成器的輸齣格式 140
13.3 獲取RGB影像及貼齣RGB影像 141
13.4 本章小結 143
第四部分 實戰篇
第14章 體感鼠標模擬 146
14.1 手部追蹤與鼠標模擬 146
14.2 程序編寫前的準備工作 146
14.2.1 環境準備 146
14.2.2 界麵準備 149
14.2.3 鼠標相關參數配置準備 149
14.3 初始化 149
14.3.1 對話框初始化 150
14.3.2 載入ini文檔中的配置 151
14.3.3 OpenNI程序環境初始化 151
14.4 程序設計 154
14.4.1 獲取深度圖 154
14.4.2 獲取用戶數據 155
14.4.3 鼠標左右手模式的選擇及切換 156
14.4.4 滾輪控製放大和縮小 157
14.4.5 左手控製鼠標 158
14.4.6 右手控製鼠標 159
14.4.7 鼠標事件指令發送 161
14.4.8 懸停狀態設計 163
14.5 本章小結 165
第15章 Xtion玩《街頭霸王》 166
15.1 用身體控製遊戲人物 166
15.1.1 人物基本操控動作 167
15.1.2 通用招式動作設計 167
15.1.3 遊戲人物的特有招式設計 168
15.2 創建工程、配置工程環境 169
15.3 初始化 171
15.3.1 讀取深度數據 172
15.3.2 處理深度數據 172
15.3.3 獲取骨架 173
15.3.4 骨架數據的初步處理 174
15.4 Ken人物動作的錶述 176
15.4.1 輕拳 176
15.4.2 跳起 178
15.4.3 波動拳 180
15.4.4 神龍拳 183
15.5 虛擬按鍵機製 186
15.6 本章小結 188
第16章 體感方嚮盤玩賽車類遊戲 189
16.1 體感方嚮盤設計 189
16.1.1 操控方嚮盤基本動作 189
16.1.2 虛擬綫性手柄模擬方嚮盤 189
16.2 體感方嚮盤程序開發初始化 191
16.2.1 環境初始化 191
16.2.2 虛擬手柄初始化 193
16.3 模擬方嚮盤操控 196
16.3.1 獲取用戶信息 196
16.3.2 左右方嚮的控製 197
16.3.3 油門與刹車 199
16.3.4 發送指令給虛擬綫性手柄 200
16.4 本章小結 201
第17章 Xtion控製機器人 202
17.1 體感控製機器人需求分析 202
17.1.1 瞭解機器人構造 202
17.1.2 如何用身體操控機器人 203
17.1.3 機器人操控程序界麵設計 203
17.2 初始化 204
17.2.1 界麵初始化 204
17.2.2 體感追蹤初始化 206
17.2.3 迴調函數 207
17.3 控製機器人 207
17.3.1 連接機器人 207
17.3.2 發送指令 208
17.4 機器人程序代碼實現 209
17.4.1 骨骼數據的初步獲取 209
17.4.2 左肩的體感控製 211
17.4.3 大臂轉動的控製 213
17.4.4 肘部角度計算 215
17.4.5 手部角度計算 215
17.4.6 小手臂轉動 222
17.5 本章小結 222
第五部分 高級篇
第18章 BVH骨架轉換 224
18.1 運動捕捉技術簡介 224
18.1.1 典型的運動捕捉設備組成 225
18.1.2 傳統捕捉技術 225
18.1.3 運動捕捉技術應用 228
18.1.4 運動捕捉技術優缺點 229
18.2 動作捕獲數據 230
18.2.1 解析BVH文件 230
18.2.2 骨架結構 231
18.2.3 解讀數據 232
18.3 鏇轉 233
18.3.1 基礎2D鏇轉 233
18.3.2 3D坐標軸鏇轉 234
18.4 歐拉角 237
18.4.1 從歐拉角轉換到矩陣 238
18.4.2 從矩陣轉換到歐拉角 238
18.4.3 從骨架數據中提取歐拉角 239
18.5 本章小結 241
· · · · · · (
收起)
評分
☆☆☆☆☆
對體感開發的講解比較清晰,對openNI的講解也算是比較清楚的容易理解,沒有很深入,算是一本不錯的體感、openNI開發類入門書籍
評分
☆☆☆☆☆
對體感開發的講解比較清晰,對openNI的講解也算是比較清楚的容易理解,沒有很深入,算是一本不錯的體感、openNI開發類入門書籍
評分
☆☆☆☆☆
廢話多,貼齣的源碼裏多次齣現明顯的函數名錯誤
評分
☆☆☆☆☆
不錯的體感開發入門書籍
評分
☆☆☆☆☆
對體感開發的講解比較清晰,對openNI的講解也算是比較清楚的容易理解,沒有很深入,算是一本不錯的體感、openNI開發類入門書籍
評分
☆☆☆☆☆
应该是中文OpenNI第一本技术书籍,从体感原理工程配置开始逐渐深入介绍了OpenNI的开发过程. 书中用到的体感器设备是primeSense芯片的华硕公司的Xtion 入门推荐啊啊啊啊啊啊啊~~~~
評分
☆☆☆☆☆
应该是中文OpenNI第一本技术书籍,从体感原理工程配置开始逐渐深入介绍了OpenNI的开发过程. 书中用到的体感器设备是primeSense芯片的华硕公司的Xtion 入门推荐啊啊啊啊啊啊啊~~~~
評分
☆☆☆☆☆
应该是中文OpenNI第一本技术书籍,从体感原理工程配置开始逐渐深入介绍了OpenNI的开发过程. 书中用到的体感器设备是primeSense芯片的华硕公司的Xtion 入门推荐啊啊啊啊啊啊啊~~~~
評分
☆☆☆☆☆
应该是中文OpenNI第一本技术书籍,从体感原理工程配置开始逐渐深入介绍了OpenNI的开发过程. 书中用到的体感器设备是primeSense芯片的华硕公司的Xtion 入门推荐啊啊啊啊啊啊啊~~~~
評分
☆☆☆☆☆
应该是中文OpenNI第一本技术书籍,从体感原理工程配置开始逐渐深入介绍了OpenNI的开发过程. 书中用到的体感器设备是primeSense芯片的华硕公司的Xtion 入门推荐啊啊啊啊啊啊啊~~~~