圖像處理和圖形繪制應(yīng)用是信息類專業(yè)重要的方向課程。我們選取有代表性的教學(xué)實(shí)踐案例,匯編整理形成本書。圖像處理實(shí)踐篇包含五個(gè)實(shí)踐案例:MFC圖像處理框架、Qt圖像處理框架、基于SVM的圖像分類、自定義圖像分類、圖像處理中的插值算法,從實(shí)踐角度,手把手指導(dǎo)學(xué)生一步步地實(shí)現(xiàn)完整的圖像工程案例;圖形繪制應(yīng)用篇包含四個(gè)應(yīng)用案例:“不倒翁”“貪吃蛇”“3D動(dòng)畫”“功夫足球”,遵循“做中學(xué)”的理念,由淺入深、逐步引入,使學(xué)生在動(dòng)手操作的過程中學(xué)習(xí)圖形繪制技術(shù)。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
1999年6月于重慶大學(xué)應(yīng)用數(shù)學(xué)系畢業(yè),獲理學(xué)碩士學(xué)位;2003年3月于電子科技大學(xué)計(jì)算機(jī)學(xué)院畢業(yè),獲工學(xué)博士學(xué)位,同年破格晉升為副教授。2003年3月于電子科技大學(xué)計(jì)算機(jī)學(xué)院畢業(yè),獲工學(xué)博士學(xué)位,同年破格晉升為副教授。2008年晉升為教授。2003年至今在西南民族大學(xué)任教。圖像與視頻處理、計(jì)算機(jī)視覺2007年出版《視頻流量分析與QoS管理》
1. Adaptive locally weighted support vector algorithm with asymmetrically parametric insensitive/margin model,Knowledg e-Based Systems
2.CD-GAN:A robust fusion-based generative adversarial network Informat for unsupervised remote sensing change detection with heterogeneous sensors,Information Fusion
3. Hyperspectral via superpixel image restoration segmentation of smooth band,Neuro-computing擔(dān)任多個(gè)國(guó)內(nèi)外重要學(xué)術(shù)期刊的審稿專家。
目錄
前言
上篇:圖像處理實(shí)踐
第1章 圖像處理預(yù)備知識(shí) 3
1.1 圖像處理基本操作 3
1.1.1 圖像灰度化 3
1.1.2 圖像平滑 3
1.1.3 背景消除 4
1.1.4 圖像二值化 5
1.2 數(shù)學(xué)形態(tài)學(xué)
1.2.1 基本定義 8
1.2.2 形態(tài)學(xué)運(yùn)算 8
1.3 一些圖像特征的定義
1.3.1 區(qū)域描述 10
1.3.2 形狀描述 12
1.4 插值算法
1.4.1 插值基本原理 13
1.4.2 拉格朗日插值函數(shù) 13
1.4.3 牛頓插值函數(shù) 15
1.4.4 分段線性插值 17
1.4.5 雙線性插值 17
1.5 圖像分類簡(jiǎn)介
1.5.1 支持向量機(jī) 18
1.5.2 SVM求解原理 21
1.5.3 SVM多分類方法 27
本章小結(jié) 29
第2章 圖像處理開發(fā)平臺(tái)及工具 30
2.1 MFC簡(jiǎn)介 30
2.1.1 MFC消息映射 30
2.1.2 MFC控件 32
2.2 Qt簡(jiǎn)介 34
2.2.1 Qt的信號(hào)和槽函數(shù) 34
2.2.2 Qt常用控件 35
2.3 OpenCV簡(jiǎn)介 36
2.3.1 關(guān)于OpenCV 36
2.3.2 常用OpenCV函數(shù) 37
2.4 開發(fā)環(huán)境 42
本章小結(jié) 42
第3章 實(shí)踐案例1(MFC圖像處理框架) 43
3.1 案例背景 43
3.1.1 題目要求 43
3.1.2 所需材料 43
3.2 整體步驟 44
3.3 處理報(bào)告 45
3.4 編寫圖像讀入與保存代碼 46
3.5 繪制圖像 53
3.6 直方圖對(duì)話框 UI 設(shè)計(jì) 54
3.6.1 設(shè)計(jì)直方圖對(duì)話框 54
3.6.2 添加直方圖按鈕到菜單 57
3.6.3 創(chuàng)建直方圖類 58
3.6.4 獲取直方圖數(shù)據(jù) 73
3.6.5 繪制直方圖 78
3.6.6 導(dǎo)出直方圖數(shù)據(jù) 79
3.7 優(yōu)化 79
3.8 結(jié)果展示 80
3.8.1 應(yīng)用程序主窗口 80
3.8.2 打開并繪制圖像 80
3.8.3 顯示直方圖 81
3.8.4 輸出直方圖數(shù)據(jù) 82
3.8.5 另存為其他格式圖像 82
3.9 反思與改進(jìn) 83
本章小結(jié) 83
第4章 實(shí)踐案例2(Qt圖像處理框架) 85
4.1 案例背景 85
4.2 整體步驟 85
4.3 菜單設(shè)計(jì) 85
4.3.1 Open槽函數(shù)及動(dòng)作關(guān)聯(lián) 86
4.3.2 實(shí)現(xiàn)Open事件動(dòng)作邏輯 86
4.4 創(chuàng)建圖片顯示子窗口 88
4.4.1 創(chuàng)建圖片顯示窗口類 88
4.4.2 設(shè)計(jì)圖片顯示子窗口 88
4.4.3 修改子窗口構(gòu)造函數(shù) 89
4.4.4 添加圖片并顯示 89
4.5 創(chuàng)建直方圖顯示子窗口 89
4.5.1 創(chuàng)建直方圖對(duì)話框窗口類 89
4.5.2 設(shè)計(jì)直方圖對(duì)話框 90
4.5.3 直方圖槽函數(shù)及動(dòng)作關(guān)聯(lián) 90
4.5.4 獲取直方圖通道數(shù)據(jù) 91
4.6 繪制直方圖 92
4.6.1 繪制直方圖坐標(biāo)系 92
4.6.2 設(shè)置各通道畫筆顏色 93
4.6.3 設(shè)置區(qū)間標(biāo)注線 94
4.7 處理交互事件 94
4.7.1 處理radio button事件 94
4.7.2 處理spinBox事件 95
4.7.3 處理鼠標(biāo)事件 96
4.8 結(jié)果展示 98
4.9 反思與改進(jìn) 99
4.9.1 圖像灰度化方法比較 99
4.9.2 Qt多窗口聯(lián)動(dòng) 101
4.9.3 Qt自定義信號(hào)和槽函數(shù) 101
4.9.4 Qt自定義控件 102
本章小結(jié) 103
第5章 實(shí)踐案例3(基于SVM的圖像分類) 104
5.1 案例背景 104
5.1.1 題目要求 104
5.1.2 所需材料 104
5.2 整體步驟 105
5.3 SVM圖像分類 105
5.3.1 讀取圖像數(shù)據(jù)集 105
5.3.2 圖像預(yù)處理 107
5.3.3 提取圖像特征 108
5.3.4 設(shè)置SVM模型參數(shù) 109
5.4 實(shí)驗(yàn)結(jié)果 110
5.4.1 特征選擇及誤差分析 110
5.4.2 SVM模型訓(xùn)練結(jié)果 111
5.4.3 圖片test1測(cè)試結(jié)果 112
5.4.4 圖片test2測(cè)試結(jié)果 113
5.4.5 反思與改進(jìn) 114
本章小結(jié) 117
第6章 實(shí)踐案例4(自定義圖像分類) 118
6.1 案例背景 118
6.1.1 題目要求 118
6.1.2 解決方案流程圖 118
6.2 圖像預(yù)處理 118
6.2.1 二值化 119
6.2.2 優(yōu)化二值圖 119
6.3 目標(biāo)獲取 120
6.3.1 目標(biāo)確定 120
6.3.2 目標(biāo)位置 123
6.4 特征提。ㄌ卣鹘Y(jié)構(gòu)) 123
6.4.1 最小外接矩形 124
6.4.2 是否中空 124
6.4.3 矩形度、圓形度、偏心率 125
6.5 圖像中的目標(biāo)獲取與保存 125
6.5.1 掃描模式 125
6.5.2 目標(biāo)壓棧 126
6.6 分類器 127
6.6.1 特征區(qū)分 127
6.6.2 特征分類 128
6.6.3 文件讀寫 129
6.7 訓(xùn)練器 131
6.7.1 訓(xùn)練圖像的讀入 131
6.7.2 多線程計(jì)算 132
6.7.3 數(shù)據(jù)分析 133
6.7.4 數(shù)據(jù)文件 138
6.8 顯示輸出 140
6.8.1 隨機(jī)色彩 140
6.8.2 反色 141
6.9 運(yùn)行程序 142
6.9.1 主函數(shù) 142
6.9.2 運(yùn)行結(jié)果 143
6.10 反思與改進(jìn) 145
6.10.1 驗(yàn)證訓(xùn)練模型 145
6.10.2 噪聲測(cè)試 149
本章小結(jié) 150
第7章 實(shí)踐案例 5 (圖像處理中的插值算法) 151
7.1 案例背景 151
7.1.1 題目要求 151
7.1.2 分析與思路 152
7.1.3 編程語(yǔ)言與編譯器 152
7.2 實(shí)驗(yàn)主要過程 152
7.2.1 題目1 152
7.2.2 題目2 154
7.2.3 題目3 155
本章小結(jié) 157
下篇:圖形繪制應(yīng)用
第8章 3D圖形繪制揭秘 161
8.1 3D物體的表示 161
8.2 相機(jī)坐標(biāo)系 162
8.3 投影觀察體 163
8.4 OpenGL線框繪制 164
8.5 光照效果 166
8.5.1 燈光設(shè)置 166
8.5.2 環(huán)境光設(shè)置 167
8.5.3 漫反射光設(shè)置 167
8.5.4 鏡面反射光設(shè)置 168
8.5.5 光照計(jì)算 168
8.5.6 OpenGL光照效果繪制 169
8.6 世界坐標(biāo)與局部坐標(biāo) 172
8.6.1 3D 場(chǎng)景與世界坐標(biāo) 172
8.6.2 物體的局部坐標(biāo) 172
8.6.3 幾何變換與局部坐標(biāo)系 173
8.6.4 世界坐標(biāo)與局部坐標(biāo)的計(jì)算 174
8.7 3D 場(chǎng)景搭建 176
8.7.1 單位立方體繪制 177
8.7.2 桌面組合體繪制 178
8.8 紋理貼圖 181
8.8.1 映射空間 181
8.8.2 紋理映射 183
8.8.3 紋理過濾 184
8.8.4 紋理貼圖 186
8.8.5 紋理圖片載入 190
8.8.6 紋理坐標(biāo)分配 196
8.8.7 紋理坐標(biāo)自動(dòng)生成 197
8.8.8 鏡面反射 201
本章小結(jié) 206
第9章 Unity的安裝與準(zhǔn)備 207
9.1 Unity的準(zhǔn)備 207
9.2 Unity工程的創(chuàng)建與操作界面 210
本章小結(jié) 211
第10章 應(yīng)用案例"不倒翁" 212
10.1 Unity場(chǎng)景搭建 212
10.1.1 創(chuàng)建地板 212
10.1.2 創(chuàng)建墻壁 213
10.2 材質(zhì)球設(shè)置 214
10.3 復(fù)制與調(diào)整 216
10.4 創(chuàng)建“不倒翁” 216
10.5 調(diào)整Game視圖 217
10.6 剛體與碰撞 217
本章小結(jié) 220
第11章 應(yīng)用案例“貪吃蛇” 221
11.1 制作3D蛇 221
11.1.1 制作蛇頭部 221
11.1.2 制作蛇身部 221
11.2 腳本編寫 222
11.2.1 簡(jiǎn)單腳本編寫 223
11.2.2 幾個(gè)重要函數(shù) 224
11.3 物體消失 224
11.4 預(yù)制體制作 226
11.5 游戲計(jì)分 227
本章小結(jié) 230
第12章 應(yīng)用案例“3D動(dòng)畫” 231
12.1 立方體3D動(dòng)畫 231
12.1.1 動(dòng)畫場(chǎng)景創(chuàng)建 231
12.1.2 Animation窗口 231
12.1.3 創(chuàng)建動(dòng)畫及控制器文件 232
12.1.4 關(guān)鍵幀錄制 233
12.2 3D人形角色動(dòng)畫 233
12.2.1 機(jī)器人場(chǎng)景創(chuàng)建 233
12.2.2 配置動(dòng)畫模型 234
12.2.3 創(chuàng)建機(jī)器人的動(dòng)畫及控制器文件 236
12.2.4 創(chuàng)建動(dòng)畫 236
12.2.5 動(dòng)畫狀態(tài)切換 238
本章小結(jié) 239
第13章 應(yīng)用案例“功夫足球” 240
13.1 足球場(chǎng)景創(chuàng)建 240
13.1.1 賽場(chǎng)場(chǎng)景 240
13.1.2 進(jìn)攻球員創(chuàng)建 240
13.1.3 賽場(chǎng)場(chǎng)景創(chuàng)建 241
13.2 球員左右移動(dòng) 242
13.3 機(jī)器人的動(dòng)畫創(chuàng)建 243
13.4 進(jìn)球判定 244
13.5 游戲登錄場(chǎng)景 245
13.5.1 創(chuàng)建登錄界面畫布 245
13.5.2 添加畫布背景圖片 245
13.5.3 創(chuàng)建游戲標(biāo)題 246
13.6 游戲加載場(chǎng)景 247
13.7 游戲等級(jí)選擇場(chǎng)景 248
13.8 信息提示面板 249
13.9 時(shí)間與音樂播放器 249
13.9.1 時(shí)間與音樂播放場(chǎng)景創(chuàng)建 249
13.9.2 創(chuàng)建音樂設(shè)置腳本 250
13.10 游戲場(chǎng)景的運(yùn)行與控制 253
13.10.1 游戲場(chǎng)景的運(yùn)行順序 253
13.10.2 游戲登錄腳本 253
13.10.3 游戲加載腳本 255
13.10.4 游戲難度選擇腳本 256
13.10.5 創(chuàng)建游戲的主控腳本 258
13.11 游戲發(fā)布 264
13.11.1 場(chǎng)景設(shè)置 264
13.11.2 發(fā)布到PC平臺(tái) 265
本章小結(jié) 266
參考文獻(xiàn) 267
附錄1 RemoveSmallRegion()函數(shù) 269
附錄2 WinGDI位圖繪制函數(shù) 272
附錄3 題目1~題目3源代碼 273