OpenCV圖像處理編程實例

OpenCV圖像處理編程實例

《OpenCV圖像處理編程實例》以OpenCV開源庫為基礎實現圖像處理領域的很多通用算法,並結合當今圖像處理領域前沿技術,對多個典型工程實例進行講解及實現。全書內容覆蓋面廣,由基礎到進階,各個技術點均提供詳細的代碼實現,以幫助讀者快速上手和深入學習。 《OpenCV圖像處理編程實例》內容共三個部分,其中1~2章為基礎篇,3~6章為進階篇,7~9章為高級篇。第一部分基礎篇主要介紹OpenCV開發基礎的相關知識,讓讀者熟悉圖像處理開發環境以及簡單的圖像處理操作;第二部分進階篇主要介紹圖像處理技術,包括灰度變換技術、平滑技術、邊緣檢測及形態學技術;第三部分高級篇主要介紹圖像套用技術,包括圖像分割技術、特徵分析和複雜視頻處理技術。進階篇與高級篇的每章末節均提供了與本章內容相關的套用實例,意在讓讀者更好理解知識點,進而有效地進行圖像處理開發。 《OpenCV圖像處理編程實例》適合圖像處理、計算機視覺及模式識別等相關領域學習和工作的人士閱讀,也可作為其他相關領域研究工作者的參考資料。

編輯推薦

理論與實際案例相結合,提供了多個更具實用性和前沿性的案例

內容提要

《OpenCV圖像處理編程實例》以OpenCV開源庫為基礎實現圖像處理領域的很多通用算法,並結合當今圖像處理領域前沿技術,對多個典型工程實例進行講解及實現。全書內容覆蓋面廣,由基礎到進階,各個技術點均提供詳細的代碼實現,以幫助讀者快速上手和深入學習。

《OpenCV圖像處理編程實例》內容共三個部分,其中1~2章為基礎篇,3~6章為進階篇,7~9章為高級篇。第一部分基礎篇主要介紹OpenCV開發基礎的相關知識,讓讀者熟悉圖像處理開發環境以及簡單的圖像處理操作;第二部分進階篇主要介紹圖像處理技術,包括灰度變換技術、平滑技術、邊緣檢測及形態學技術;第三部分高級篇主要介紹圖像套用技術,包括圖像分割技術、特徵分析和複雜視頻處理技術。進階篇與高級篇的每章末節均提供了與本章內容相關的套用實例,意在讓讀者更好理解知識點,進而有效地進行圖像處理開發。

《OpenCV圖像處理編程實例》適合圖像處理、計算機視覺及模式識別等相關領域學習和工作的人士閱讀,也可作為其他相關領域研究工作者的參考資料。

目錄

Part I 基礎篇 OpenCV 開發基礎. 1

第 1 章初識 OpenCV.. 3

1.1 OpenCV 初識 4

1.1.1 OpenCV 簡介.. 4

1.1.2 OpenCV 組件及架構.. 5

1.1.3 OpenCV 資源.. 9

1.2 VS2012 安裝OpenCV2.4.x .. 9

1.3 VS2013 安裝OpenCV3.0 14

1.4 Sublime 下配置OpenCV. 16

1.5 小結 19

第2 章圖像及視頻基本操作. 20

2.1 圖像初級操作 21

2.1.1 Mat 類 21

2.1.2 Mat 基本操作 23

2.1.3 Mat 類型轉換 24

2.1.4 圖像讀取顯示保存 24

2.1.5 圖像存儲. 26

2.2 圖像幾何變換 28

2.2.1 坐標映射. 28

2.2.2 平移 29

2.2.3 縮放 33

2.2.4 旋轉 36

2.2.5 仿射變換. 40

2.3 視頻操作.. 43

2.3.1 VideoCapture 類.. 43

2.3.2 視頻寫操作 45

2.3.3 視頻質量評價.. 48

2.4 圖像基礎套用操作. 50

2.4.1 界面事件. 50

2.4.2 區域提取. 54

2.4.3 圖像元素遍歷——反色.. 58

2.4.4 單視窗顯示多幅圖像 63

2.4.5 圖像顏色空間轉換 66

2.4.6 圖像批量讀取——規則.. 69

2.4.7 圖像批量讀取——無規則. 70

2.5 小結 71

Part II 進階篇圖像處理技術.. 73

第 3 章進階篇——圖像灰度變換技術. 75

3.1 閾值化處理. 76

3.1.1 OTSU 閾值化 76

3.1.2 固定閾值化 79

3.1.3 自適應閾值化.. 81

3.1.4 雙閾值化. 83

3.1.5 半閾值化. 84

3.2 直方圖處理. 85

3.2.1 灰度直方圖 85

3.2.2 H-S 直方圖. 88

3.2.3 BGR 直方圖.. 89

3.2.4 自定義直方圖.. 91

3.2.5 灰度直方圖均衡. 93

3.2.6 彩色直方圖均衡. 94

3.2.7 直方圖變換——查找 95

3.2.8 直方圖變換——累計 97

3.2.9 直方圖匹配 99

3.2.10 直方圖對比.. 101

3.2.11 直方圖的反向投影 105

3.3 距離變換 108

3.3.1 距離. 108

3.3.2 鄰接性 109

3.3.3 區域..110

3.3.4 距離變換——掃描..110

3.3.5 距離變換——distanceTransform..113

3.4 Gamma 校正.115

3.5 其他常見的灰度變換技術117

3.5.1 線性變換117

3.5.2 對數變換119

3.5.3 對比度拉伸. 121

3.5.4 灰度級分層. 124

3.5.5 灰度比特平面 125

3.6 實例套用 128

3.6.1 最大熵閾值分割.. 128

3.6.2 投影峰谷查找 131

3.7 小結. 134

第4 章進階篇——圖像平滑技術.. 135

4.1 圖像採樣 136

4.1.1 最近鄰插值. 136

4.1.2 雙線性插值. 138

4.1.3 插值操作性能對比. 140

4.1.4 圖像金字塔. 143

4.2 傅立葉變換.. 146

4.2.1 圖像掩碼操作 146

4.2.2 離散傅立葉. 149

4.2.3 圖像卷積.. 151

4.3 圖像噪聲 153

4.3.1 椒鹽噪聲.. 153

4.3.2 高斯噪聲.. 155

4.4 空間平滑 157

4.4.1 盒濾波 157

4.4.2 均值濾波.. 159

4.4.3 中值濾波.. 159

4.4.4 高斯濾波.. 161

4.4.5 雙邊濾波.. 163

4.5 實例套用 166

4.5.1 導向濾波.. 166

4.5.2 圖像污點修復 169

4.5.3 旋轉文本圖像矯正. 172

4.6 小結. 178

第5 章進階篇——邊緣檢測技術.. 179

5.1 邊緣檢測基礎. 180

5.1.1 邊緣檢測概念 180

5.1.2 梯度運算元.. 180

5.1.3 一階微分運算元 180

5.1.4 二階微分運算元 181

5.1.5 圖像差分運算 182

5.1.6 非極大值抑制 184

5.2 基本邊緣檢測運算元——Sobel 184

5.2.1 非極大值抑制Sobel 檢測.. 185

5.2.2 圖像直接卷積實現Sobel 186

5.2.3 圖像卷積下非極大值抑制Sobel. 187

5.2.4 Sobel 庫函式實現 190

5.3 基本邊緣檢測運算元——Laplace 192

5.4 基本邊緣檢測運算元——Roberts 194

5.5 基本邊緣檢測運算元——Prewitt. 195

5.6 改進邊緣檢測運算元——Canny .. 198

5.6.1 Canny 運算元.. 198

5.6.2 Canny 原理及實現.. 198

5.6.3 Canny 庫函式實現.. 203

5.7 改進邊緣檢測運算元——Marr-Hildreth .. 204

5.8 幾何檢測 207

5.8.1 霍夫變換.. 207

5.8.2 線檢測技術. 208

5.8.3 LSD 快速直線檢測. 210

5.8.4 圓檢測技術. 214

5.9 形狀檢測 215

5.9.1 輪廓檢測.. 215

5.9.2 凸包檢測.. 217

5.9.3 輪廓邊界框. 221

5.9.4 輪廓矩 226

5.9.5 點多邊形測試 229

5.10 角點檢測. 232

5.10.1 moravec 角點 232

5.10.2 harris 角點. 235

5.10.3 Shi-Tomasi 角點. 238

5.11 實例套用. 240

5.11.1 顏色圓檢測.. 240

5.11.2 車牌區域檢測.. 243

5.12 小結 249

第6 章進階篇——形態學技術. 250

6.1 腐蝕膨脹操作. 251

6.2 開閉運算操作. 253

6.3 形態學梯度.. 255

6.4 形態學Top-Hat.. 256

6.5 實例套用 257

6.5.1 形態學濾波角點提取. 257

6.5.2 車牌目標提取 260

6.6 小結. 263

Part III 高級篇圖像套用技術. 265

第 7 章高級篇——圖像分割技術.. 267

7.1 分水嶺分割.. 268

7.1.1 分水嶺的特徵 268

7.1.2 實現分水嶺分割.. 269

7.1.3 分水嶺分割合併.. 270

7.2 FloodFill 分割. 273

7.3 均值漂移MeanShift 276

7.4 圖割Grabcut 279

7.5 實例實例 282

7.5.1 奇異區域檢測 282

7.5.2 膚色檢測.. 285

7.6 小結. 288

第8 章高級篇——特徵分析.. 289

8.1 尺度空間 290

8.1.1 尺度與旋轉不變性. 290

8.1.2 特徵點尺度變換.. 290

8.2 特徵描述子.. 291

8.2.1 SIFT 特徵. 292

8.2.2 SURF 特徵.. 296

8.2.3 ORB 特徵. 300

8.3 方向梯度直方圖HOG 302

8.3.1 HOG 原理. 302

8.3.2 HOG 特徵提取步驟 303

8.3.3 HOGDescriptor 特徵描述類.. 304

8.3.4 HOG 特徵描述實現 305

8.4 局部二值模式LBP.. 309

8.4.1 經典LBP.. 309

8.4.2 圓形LBP311

8.5 Haar 特徵描述 314

8.5.1 Haar 原理. 314

8.5.2 Haar 特徵提取 315

8.6 套用實例 317

8.6.1 最近鄰特徵點目標提取 317

8.6.2 最大極值穩定區域匹配MSER 320

8.6.3 字元特徵提取 324

8.6.4 車牌字元SVM 訓練.. 327

8.7 小結. 331

第 9 章高級篇——複雜視頻處理技術.. 332

9.1 視頻穩像技術. 333

9.2 圖像拼接 338

9.2.1 拼接原理及過程.. 338

9.2.2 圖像拼接實現 339

9.3 高動態範圍圖像HDR 342

9.3.1 HDR 合成技術.. 342

9.3.2 HDR 合成原理.. 342

9.3.3 OpenCV 實現. 343

9.4 背景建模 344

9.4.1 背景差分.. 345

9.4.2 混合高斯背景建模. 345

9.4.3 混合高斯背景建模實現 346

9.4.4 混合模型MOG2 成員參數設定. 348

9.4.5 KNN 模型背景建模實現. 349

9.4.6 GMG 模型背景建模實現 351

9.5 級聯分類器——人臉檢測.. 353

9.5.1 級聯分類器. 353

9.5.2 CascadeClassifier 類 353

9.6 套用實例 355

9.6.1 運動目標提取 355

9.6.2 TLD 單目標跟蹤.. 358

9.6.3 人眼檢測與跟蹤.. 361

9.7 小結. 365

附錄A 366

1——代碼清單.. 366

2——CMake 編譯OpenCV3.1 源碼. 372

3——OpenCV3.1 Extra 擴展庫 375

參考文獻.... 379

前言

隨著計算機與圖像處理技術的快速發展,套用計算機解決現實場景下圖像分析的需求日趨增多。計算機處理圖像技術正在用全新的用戶體驗方式影響著人們的生活,微軟開發Xbox360,功能包括人臉檢測、人臉識別與跟蹤、表情判斷、動作識別;Google 開發的無人駕駛汽車;騰訊QQ 開發手勢達人PPT 翻頁;Google街景實現城市街道全景顯示,等等。

為高效解決計算機處理圖像問題,因特爾公司發起並參與開發了一個基於BSD 開源發行的跨平台計算機視覺庫OpenCV。隨著OpenCV 版本的不斷更新,提供的相關算法庫也越來越完善,大大提高了圖像處理開發的效率。為了使您儘快能夠入門圖像處理開發,本書作者根據自己的項目實踐經驗,從零基礎講起,讓您在思索中領略實用的OpenCV 開發技術,實例化的講解讓您在使用本書後能得到無限啟發。

本書特色

本書將理論與實際案例相結合,始終秉承“學以致用”的理念,提供多個頗具實用性和前沿性的實例,用詳細的代碼驗證實現,通過大量的例子讓讀者邊學邊練,注重給予讀者一定的啟發和引導。本書的編寫是站在一線開發人員的角度,用通俗易懂的語言詳細解釋了OpenCV的套用,更像一個OpenCV的工作人員在解說OpenCV的方方面面,嚴謹的邏輯結構和清晰的脈絡為讀者入門及深入了解和掌握OpenCV圖像處理開發技術奠定了紮實的基礎。

如何使用本書

本書需要讀者具有C/C++方面的基礎,在閱讀本書之前至少要對C/C++基本的語法和概念有初步了解,若您對相關知識內容存在疑惑,可參考《C++ Primer》(Stanley B.Lipman)或《C++編程思想》(Bruce Eckel)等書籍。

若您剛開始從事圖像處理領域開發,請您先掌握圖像處理相關知識點,具體資料可參考《數字圖像處理》(Rafael.C.Gonzalez)或《圖像工程》(章毓晉)等書籍。

若您剛接觸套用OpenCV進行圖像處理開發,請您先熟悉OpenCV開源庫架構,然後總覽全書,了解本書的框架與結構並對基礎篇部分進行詳細閱讀。基礎篇提供的相關知識點能讓您能快速上手編程,實踐出真知,希望您能獨立實現這部分知識點的代碼。

若您已經接觸過OpenCV,想進一步提高圖像處理開發技術,請您關注本書中套用操作與實例講解。作者獨立實現了OpenCV提供的部分算法庫,如OTSU二值化、Sobel運算元及Harris角點等,授之以漁,讓您在實際算法庫開發中體驗編程樂趣。

關於本書

本書由幾位多年從事圖像處理領域的科研工作者編寫,書中的內容安排經過項目課題組的討論與審定,理論與工程實用相結合。全書由朱偉、趙春光、歐樂慶與王壽峰等共同編著,其中趙春光、歐樂慶與馬浩負責第1、2、5章,王壽峰、付乾良負責第3、4章,朱偉、白俊奇負責第6、7、8、9章,全書由朱偉統稿和整理。特別感謝百忙之中為本書主審並提出寶貴意見的研究員級高級工程師翟尚禮。

朱 偉

2016年3月於南京

相關詞條

熱門詞條

聯絡我們