本書共12 章,主要內(nèi)容包括OpenCV 4 基礎(chǔ)知識(shí),OpenCV 的模塊架構(gòu),圖像存儲(chǔ)容器,圖像的讀取與顯示,視頻加載與攝像頭調(diào)用,圖像變換,圖像金字塔,圖像直方圖的繪制,圖像的模板匹配,圖像卷積,圖像的邊緣檢測(cè),腐蝕與膨脹,形狀檢測(cè),圖像分割,特征點(diǎn)檢測(cè)與匹配,單目和雙目視覺,光流法目標(biāo)跟蹤,以及OpenCV 在機(jī)器學(xué)習(xí)方面的應(yīng)用等。
本書面向的讀者是計(jì)算機(jī)視覺與圖像處理等相關(guān)專業(yè)的高校師生、企業(yè)內(nèi)轉(zhuǎn)行計(jì)算機(jī)視覺與圖像處理的工作人員、已有圖像處理基礎(chǔ)并想了解OpenCV 4 新特性的人員。
基于新版的 OpenCV 4寫作,示例代碼基于C++;
書中不僅剖析了大量OpenCV函數(shù)的調(diào)用細(xì)節(jié),而且對(duì)原理解釋清晰明了,讓讀者不僅知其然而且知其所以然。
書中既涵蓋了傳統(tǒng)的圖形、圖像算法,也包括了更為現(xiàn)代的機(jī)器學(xué)習(xí)內(nèi)容,并配以豐富的代碼示例,內(nèi)容豐富,行文通俗。
全書介紹了OpenCV 4中近200個(gè)函數(shù)、120個(gè)示例程序,幫助讀者熟練掌握OpenCV的應(yīng)用。
馮振,哈爾濱工業(yè)大學(xué)博士,具有多年計(jì)算機(jī)視覺與圖像處理經(jīng)驗(yàn),發(fā)表多篇學(xué)術(shù)論文。創(chuàng)建技術(shù)類公眾號(hào)“小白學(xué)視覺”,參與翻譯多個(gè)開源項(xiàng)目,在計(jì)算機(jī)視覺與圖像處理領(lǐng)域具有一定的影響力。
郭延寧,哈爾濱工業(yè)大學(xué)副教授、博士生導(dǎo)師。研究方向?yàn)樯羁仗綔y(cè)制導(dǎo)與控制、視覺定位與導(dǎo)航,完成多個(gè)圖像處理相關(guān)項(xiàng)目,發(fā)表SCI論文20余篇。
呂躍勇,博士,哈爾濱工業(yè)大學(xué)講師、碩士生導(dǎo)師,主要從事自動(dòng)控制領(lǐng)域教學(xué)與研究工作,主持及參與多項(xiàng)智能控制與圖像處理領(lǐng)域課題。
目 錄
基 礎(chǔ) 篇
第 1章 初識(shí)OpenCV 2
1.1 什么是OpenCV 2
1.1.1 OpenCV與計(jì)算機(jī)視覺 2
1.1.2 OpenCV的發(fā)展 3
1.1.3 OpenCV 4帶來了什么 4
1.2 安裝OpenCV 4 4
1.2.1 在Windows系統(tǒng)中
安裝OpenCV 4 4
1.2.2 Image Watch插件的使用 12
1.2.3 在Ubuntu系統(tǒng)中安裝
OpenCV 4 12
1.2.4 opencv_contrib擴(kuò)展模塊的
安裝 15
1.2.5 安裝過程中常見問題的解決
方案 17
1.3 了解OpenCV的模塊架構(gòu) 18
1.4 源碼示例程序展示 19
1.4.1 配置示例程序運(yùn)行環(huán)境 19
1.4.2 邊緣檢測(cè)edge 21
1.4.3 K聚類kmeans 22
1.4.4 二維碼識(shí)別qrcode 23
1.4.5 相機(jī)使用video_capture_starter 24
1.4.6 視頻物體跟蹤camshiftdemo 25
1.5 本章小結(jié) 26
第 2章 數(shù)據(jù)載入、顯示與保存 27
2.1 圖像存儲(chǔ)容器 27
2.1.1 Mat類介紹 27
2.1.2 Mat類構(gòu)造與賦值 29
2.1.3 Mat類支持的運(yùn)算 33
2.1.4 Mat類元素的讀取 35
2.2 圖像的讀取與顯示 37
2.2.1 圖像讀取函數(shù)imread 38
2.2.2 圖像窗口函數(shù)namedWindow 39
2.2.3 圖像顯示函數(shù)imshow 40
2.3 視頻加載與攝像頭調(diào)用 40
2.3.1 視頻數(shù)據(jù)的讀取 40
2.3.2 攝像頭的直接調(diào)用 42
2.4 數(shù)據(jù)保存 43
2.4.1 圖像的保存 43
2.4.2 視頻的保存 45
2.4.3 保存和讀取XML和YMAL
文件 47
2.5 本章小結(jié) 52
進(jìn) 階 篇
第3章 圖像基本操作 54
3.1 圖像顏色空間 54
3.1.1 顏色模型與轉(zhuǎn)換 54
3.1.2 多通道分離與合并 59
3.2 圖像像素操作處理 61
3.2.1 圖像像素統(tǒng)計(jì) 62
3.2.2 兩圖像間的像素操作 66
3.2.3 圖像二值化 71
3.2.4 LUT 76
3.3 圖像變換 78
3.3.1 圖像連接 78
3.3.2 圖像尺寸變換 81
3.3.3 圖像翻轉(zhuǎn)變換 83
3.3.4 圖像仿射變換 84
3.3.5 圖像透視變換 88
3.3.6 極坐標(biāo)變換 90
3.4 在圖像上繪制幾何圖形 92
3.4.1 繪制圓形 92
3.4.2 繪制直線 93
3.4.3 繪制橢圓 93
3.4.4 繪制多邊形 94
3.4.5 文字生成 95
3.5 感興趣區(qū)域 97
3.6 圖像“金字塔” 100
3.6.1 高斯“金字塔” 100
3.6.2 拉普拉斯“金字塔” 101
3.7 窗口交互操作 104
3.7.1 圖像窗口滑動(dòng)條 104
3.7.2 鼠標(biāo)響應(yīng) 106
3.8 本章小結(jié) 109
第4章 圖像直方圖與模板匹配 111
4.1 圖像直方圖的繪制 111
4.2 直方圖操作 113
4.2.1 直方圖歸一化 113
4.2.2 直方圖比較 116
4.3 直方圖應(yīng)用 120
4.3.1 直方圖均衡化 120
4.3.2 直方圖匹配 122
4.3.3 直方圖反向投影 125
4.4 圖像的模板匹配 127
4.5 本章小結(jié) 131
第5章 圖像濾波 132
5.1 圖像卷積 132
5.2 噪聲的種類與生成 136
5.2.1 椒鹽噪聲 136
5.2.2 高斯噪聲 139
5.3 線性濾波 142
5.3.1 均值濾波 142
5.3.2 方框?yàn)V波 145
5.3.3 高斯濾波 147
5.3.4 可分離濾波 151
5.4 非線性濾波 154
5.4.1 中值濾波 154
5.4.2 雙邊濾波 156
5.5 圖像的邊緣檢測(cè) 159
5.5.1 邊緣檢測(cè)原理 159
5.5.2 Sobel算子 162
5.5.3 Scharr算子 165
5.5.4 生成邊緣檢測(cè)濾波器 167
5.5.5 Laplacian算子 168
5.5.6 Canny算法 170
5.6 本章小結(jié) 173
第6章 圖像形態(tài)學(xué)操作 175
6.1 像素距離與連通域 175
6.1.1 圖像像素距離變換 175
6.1.2 圖像連通域分析 180
6.2 腐蝕和膨脹 187
6.2.1 圖像腐蝕 188
6.2.2 圖像膨脹 192
6.3 形態(tài)學(xué)應(yīng)用 195
6.3.1 開運(yùn)算 195
6.3.2 閉運(yùn)算 197
6.3.3 形態(tài)學(xué)梯度 197
6.3.4 頂帽運(yùn)算 198
6.3.5 黑帽運(yùn)算 198
6.3.6 擊中擊不中變換 199
6.3.7 圖像細(xì)化 202
6.4 本章小結(jié) 205
應(yīng) 用 篇
第7章 目標(biāo)檢測(cè) 208
7.1 形狀檢測(cè) 208
7.1.1 直線檢測(cè) 208
7.1.2 直線擬合 218
7.1.3 圓形檢測(cè) 220
7.2 輪廓檢測(cè) 223
7.2.1 輪廓發(fā)現(xiàn)與繪制 223
7.2.2 輪廓面積 228
7.2.3 輪廓長(zhǎng)度(周長(zhǎng)) 229
7.2.4 輪廓外接多邊形 231
7.2.5 點(diǎn)到輪廓距離 236
7.2.6 凸包檢測(cè) 237
7.3 矩的計(jì)算 239
7.3.1 幾何矩與中心矩 239
7.3.2 Hu矩 241
7.3.3 基于Hu矩的輪廓匹配 243
7.4 點(diǎn)集擬合 245
7.5 QR二維碼檢測(cè) 248
7.6 本章小結(jié) 251
第8章 圖像分析與修復(fù) 253
8.1 傅里葉變換 253
8.1.1 離散傅里葉變換 253
8.1.2 傅里葉變換進(jìn)行卷積 260
8.1.3 離散余弦變換 262
8.2 積分圖像 266
8.3 圖像分割 270
8.3.1 漫水填充法 270
8.3.2 分水嶺法 274
8.3.3 Grabcut法 277
8.3.4 Mean-Shift法 279
8.4 圖像修復(fù) 282
8.5 本章小結(jié) 285
第9章 特征點(diǎn)檢測(cè)與匹配 287
9.1 角點(diǎn)檢測(cè) 287
9.1.1 顯示關(guān)鍵點(diǎn) 287
9.1.2 Harris角點(diǎn)檢測(cè) 290
9.1.3 Shi-Tomas角點(diǎn)檢測(cè) 293
9.1.4 亞像素級(jí)別角點(diǎn)檢測(cè) 296
9.2 特征點(diǎn)檢測(cè) 298
9.2.1 關(guān)鍵點(diǎn) 298
9.2.2 描述子 299
9.2.3 SIFT特征點(diǎn)檢測(cè) 300
9.2.4 SURF特征點(diǎn)檢測(cè) 303
9.2.5 ORB特征點(diǎn)檢測(cè) 306
9.3 特征點(diǎn)匹配 310
9.3.1 DescriptorMatcher類介紹 310
9.3.2 暴力匹配 312
9.3.3 顯示特征點(diǎn)匹配結(jié)果 313
9.3.4 FLANN匹配 315
9.3.5 RANSAC優(yōu)化特征點(diǎn)匹配 318
9.4 本章小結(jié) 322
第 10章 立體視覺 323
10.1 單目視覺 323
10.1.1 單目相機(jī)模型 323
10.1.2 標(biāo)定板角點(diǎn)提取 327
10.1.3 單目相機(jī)標(biāo)定 331
10.1.4 單目相機(jī)校正 335
10.1.5 單目投影 339
10.1.6 單目位姿估計(jì) 341
10.2 雙目視覺 346
10.2.1 雙目相機(jī)模型 346
10.2.2 雙目相機(jī)標(biāo)定 347
10.2.3 雙目相機(jī)校正 350
10.3 本章小結(jié) 353
第 11章 視頻分析 354
11.1 差值法檢測(cè)移動(dòng)物體 354
11.2 均值遷移法目標(biāo)跟蹤 357
11.2.1 均值遷移法實(shí)現(xiàn)的目標(biāo)
跟蹤 357
11.2.2 自適應(yīng)均值遷移法實(shí)現(xiàn)的目標(biāo)
跟蹤 361
11.3 光流法目標(biāo)跟蹤 365
11.3.1 Farneback多項(xiàng)式擴(kuò)展算法 366
11.3.2 基于LK稀疏光流法的跟蹤 370
11.4 本章小結(jié) 375
提 高 篇
第 12章 OpenCV與機(jī)器學(xué)習(xí) 378
12.1 OpenCV與傳統(tǒng)機(jī)器學(xué)習(xí) 378
12.1.1 K均值 378
12.1.2 K近鄰 383
12.1.3 決策樹 389
12.1.4 隨機(jī)森林 392
12.1.5 支持向量機(jī) 394
12.2 OpenCV與深度神經(jīng)網(wǎng)絡(luò)應(yīng)用
實(shí)例 397
12.2.1 加載深度學(xué)習(xí)模型 397
12.2.2 圖像識(shí)別 400
12.2.3 風(fēng)格遷移 403
12.2.4 性別檢測(cè) 405
12.3 本章小結(jié) 407