圖像處理和圖形繪制應(yīng)用是信息類專業(yè)重要的方向課程。我們選取有代表性的教學(xué)實踐案例,匯編整理形成本書。圖像處理實踐篇包含五個實踐案例:MFC圖像處理框架、Qt圖像處理框架、基于SVM的圖像分類、自定義圖像分類、圖像處理中的插值算法,從實踐角度,手把手指導(dǎo)學(xué)生一步步地實現(xiàn)完整的圖像工程案例;圖形繪制應(yīng)用篇包含四個應(yīng)用案例:“不倒翁”“貪吃蛇”“3D動畫”“功夫足球”,遵循“做中學(xué)”的理念,由淺入深、逐步引入,使學(xué)生在動手操作的過程中學(xué)習圖形繪制技術(shù)。
更多科學(xué)出版社服務(wù),請掃碼獲取。
1999年6月于重慶大學(xué)應(yīng)用數(shù)學(xué)系畢業(yè),獲理學(xué)碩士學(xué)位;2003年3月于電子科技大學(xué)計算機學(xué)院畢業(yè),獲工學(xué)博士學(xué)位,同年破格晉升為副教授。2003年3月于電子科技大學(xué)計算機學(xué)院畢業(yè),獲工學(xué)博士學(xué)位,同年破格晉升為副教授。2008年晉升為教授。2003年至今在西南民族大學(xué)任教。圖像與視頻處理、計算機視覺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擔任多個國內(nèi)外重要學(xué)術(shù)期刊的審稿專家。
目錄
前言
上篇:圖像處理實踐
第1章 圖像處理預(yù)備知識 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é)運算 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 圖像分類簡介
1.5.1 支持向量機 18
1.5.2 SVM求解原理 21
1.5.3 SVM多分類方法 27
本章小結(jié) 29
第2章 圖像處理開發(fā)平臺及工具 30
2.1 MFC簡介 30
2.1.1 MFC消息映射 30
2.1.2 MFC控件 32
2.2 Qt簡介 34
2.2.1 Qt的信號和槽函數(shù) 34
2.2.2 Qt常用控件 35
2.3 OpenCV簡介 36
2.3.1 關(guān)于OpenCV 36
2.3.2 常用OpenCV函數(shù) 37
2.4 開發(fā)環(huán)境 42
本章小結(jié) 42
第3章 實踐案例1(MFC圖像處理框架) 43
3.1 案例背景 43
3.1.1 題目要求 43
3.1.2 所需材料 43
3.2 整體步驟 44
3.3 處理報告 45
3.4 編寫圖像讀入與保存代碼 46
3.5 繪制圖像 53
3.6 直方圖對話框 UI 設(shè)計 54
3.6.1 設(shè)計直方圖對話框 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 反思與改進 83
本章小結(jié) 83
第4章 實踐案例2(Qt圖像處理框架) 85
4.1 案例背景 85
4.2 整體步驟 85
4.3 菜單設(shè)計 85
4.3.1 Open槽函數(shù)及動作關(guān)聯(lián) 86
4.3.2 實現(xiàn)Open事件動作邏輯 86
4.4 創(chuàng)建圖片顯示子窗口 88
4.4.1 創(chuàng)建圖片顯示窗口類 88
4.4.2 設(shè)計圖片顯示子窗口 88
4.4.3 修改子窗口構(gòu)造函數(shù) 89
4.4.4 添加圖片并顯示 89
4.5 創(chuàng)建直方圖顯示子窗口 89
4.5.1 創(chuàng)建直方圖對話框窗口類 89
4.5.2 設(shè)計直方圖對話框 90
4.5.3 直方圖槽函數(shù)及動作關(guān)聯(lián) 90
4.5.4 獲取直方圖通道數(shù)據(jù) 91
4.6 繪制直方圖 92
4.6.1 繪制直方圖坐標系 92
4.6.2 設(shè)置各通道畫筆顏色 93
4.6.3 設(shè)置區(qū)間標注線 94
4.7 處理交互事件 94
4.7.1 處理radio button事件 94
4.7.2 處理spinBox事件 95
4.7.3 處理鼠標事件 96
4.8 結(jié)果展示 98
4.9 反思與改進 99
4.9.1 圖像灰度化方法比較 99
4.9.2 Qt多窗口聯(lián)動 101
4.9.3 Qt自定義信號和槽函數(shù) 101
4.9.4 Qt自定義控件 102
本章小結(jié) 103
第5章 實踐案例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 實驗結(jié)果 110
5.4.1 特征選擇及誤差分析 110
5.4.2 SVM模型訓(xùn)練結(jié)果 111
5.4.3 圖片test1測試結(jié)果 112
5.4.4 圖片test2測試結(jié)果 113
5.4.5 反思與改進 114
本章小結(jié) 117
第6章 實踐案例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 目標獲取 120
6.3.1 目標確定 120
6.3.2 目標位置 123
6.4 特征提。ㄌ卣鹘Y(jié)構(gòu)) 123
6.4.1 最小外接矩形 124
6.4.2 是否中空 124
6.4.3 矩形度、圓形度、偏心率 125
6.5 圖像中的目標獲取與保存 125
6.5.1 掃描模式 125
6.5.2 目標壓棧 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 多線程計算 132
6.7.3 數(shù)據(jù)分析 133
6.7.4 數(shù)據(jù)文件 138
6.8 顯示輸出 140
6.8.1 隨機色彩 140
6.8.2 反色 141
6.9 運行程序 142
6.9.1 主函數(shù) 142
6.9.2 運行結(jié)果 143
6.10 反思與改進 145
6.10.1 驗證訓(xùn)練模型 145
6.10.2 噪聲測試 149
本章小結(jié) 150
第7章 實踐案例 5 (圖像處理中的插值算法) 151
7.1 案例背景 151
7.1.1 題目要求 151
7.1.2 分析與思路 152
7.1.3 編程語言與編譯器 152
7.2 實驗主要過程 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 相機坐標系 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 光照計算 168
8.5.6 OpenGL光照效果繪制 169
8.6 世界坐標與局部坐標 172
8.6.1 3D 場景與世界坐標 172
8.6.2 物體的局部坐標 172
8.6.3 幾何變換與局部坐標系 173
8.6.4 世界坐標與局部坐標的計算 174
8.7 3D 場景搭建 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 紋理坐標分配 196
8.8.7 紋理坐標自動生成 197
8.8.8 鏡面反射 201
本章小結(jié) 206
第9章 Unity的安裝與準備 207
9.1 Unity的準備 207
9.2 Unity工程的創(chuàng)建與操作界面 210
本章小結(jié) 211
第10章 應(yīng)用案例"不倒翁" 212
10.1 Unity場景搭建 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 簡單腳本編寫 223
11.2.2 幾個重要函數(shù) 224
11.3 物體消失 224
11.4 預(yù)制體制作 226
11.5 游戲計分 227
本章小結(jié) 230
第12章 應(yīng)用案例“3D動畫” 231
12.1 立方體3D動畫 231
12.1.1 動畫場景創(chuàng)建 231
12.1.2 Animation窗口 231
12.1.3 創(chuàng)建動畫及控制器文件 232
12.1.4 關(guān)鍵幀錄制 233
12.2 3D人形角色動畫 233
12.2.1 機器人場景創(chuàng)建 233
12.2.2 配置動畫模型 234
12.2.3 創(chuàng)建機器人的動畫及控制器文件 236
12.2.4 創(chuàng)建動畫 236
12.2.5 動畫狀態(tài)切換 238
本章小結(jié) 239
第13章 應(yīng)用案例“功夫足球” 240
13.1 足球場景創(chuàng)建 240
13.1.1 賽場場景 240
13.1.2 進攻球員創(chuàng)建 240
13.1.3 賽場場景創(chuàng)建 241
13.2 球員左右移動 242
13.3 機器人的動畫創(chuàng)建 243
13.4 進球判定 244
13.5 游戲登錄場景 245
13.5.1 創(chuàng)建登錄界面畫布 245
13.5.2 添加畫布背景圖片 245
13.5.3 創(chuàng)建游戲標題 246
13.6 游戲加載場景 247
13.7 游戲等級選擇場景 248
13.8 信息提示面板 249
13.9 時間與音樂播放器 249
13.9.1 時間與音樂播放場景創(chuàng)建 249
13.9.2 創(chuàng)建音樂設(shè)置腳本 250
13.10 游戲場景的運行與控制 253
13.10.1 游戲場景的運行順序 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 場景設(shè)置 264
13.11.2 發(fā)布到PC平臺 265
本章小結(jié) 266
參考文獻 267
附錄1 RemoveSmallRegion()函數(shù) 269
附錄2 WinGDI位圖繪制函數(shù) 272
附錄3 題目1~題目3源代碼 273