OpenCV是可以在多平臺下運行、并提供了多語言接口的一個庫,實現了圖像處理和計算機視覺方面的很多通用算法。 本書是介紹OpenCV結合Visual Studio進行圖像識別和處理的編程指南。全書共11章,介紹了OpenCV和Visual Studio的安裝設置,以及Core、HighGUI、ImgProc、Calib3d、Feature2d、Video、Objdetect、ML、Contrib等模塊,涉及文字處理、照片處理、圖像識別、OpenGL整合、硬件設備結合使用等眾多方面的功能,后還給出了綜合應用的實例。 本書適合對于圖像識別和處理技術感興趣,并且想要學習OpenCV的應用和編程的讀者閱讀和參考。
你是否對智能機器人、無人駕駛、人臉識別等技術感興趣呢?其實,這些技術都離不開圖像識別。圖像識別技術除了包括靜態文本的OCR掃描,還包括動態識別技術,如環境空間探測、動態物體追蹤、視頻比對分析等,這些技術可以在智能感應家電、自動化設備、家庭安保系統等各種環境中應用。 本書從基本原理入手,通過充分的實例來介紹各種圖像處理應用的開發。程序代碼使用Visual Studio并結合C/C 語言,幫助讀者掌握真正的應用場景和開發技能。 本書適合對于圖像識別和處理技術感興趣并且想要學習OpenCV的應用和編程的讀者閱讀和參考。
作者簡介 望熙榮,中國臺灣中興大學環境工程系副教授,多年教授計算機程序設計、大數據分析、R語言在環境工程中的應用等課程。 望熙貴,現任摩托羅拉半導體事業部項目經理,曾先后在多家知名IT企業擔任項目經理。
目 錄
第1章 系統安裝與項目準備 1
1.1 認識OpenCV 2
1.2 系統安裝 3
1.2.1 安裝OpenCV 3
1.2.2 安裝Visual Studio 2013 6
1.3 開始新項目 7
項目屬性的設置 9
第2章 Core模塊 16
2.1 顯示圖文件 17
2.2 圖文件轉換 30
2.3 圖文件混合 32
2.4 改變對比與明亮度 39
2.5 基本繪圖 41
2.6 文字處理 49
2.7 離散的傅立葉變換 57
2.8 使用XML與YAML進行文件的
輸出輸入 61
2.9 與OpenCV 1互通 70
第3章 HighGUI模塊 74
3.1 滑塊功能 75
3.2 讀取視頻文件進行相似性
比較 77
3.3 產生視頻文件 82
第4章 ImgProc模塊 85
4.1 圖像的平滑化 86
4.2 腐蝕與膨脹 90
4.3 更多形態處理 93
4.4 圖像金字塔 96
4.5 基本閾值法 99
4.6 建立自己的線性濾波器 104
4.7 將圖像加上邊框 107
4.8 Sobel算子 108
4.9 拉普拉斯運算 112
4.10 Canny圖像邊緣檢測 113
4.11 霍夫線變換 116
4.12 霍夫圓變換 121
4.13 重映射 124
4.14 仿射變換 127
4.15 直方圖分布平等化 129
4.16 直方圖分布計算 131
4.17 直方圖分布比較 134
4.18 反向投影 136
4.19 模板匹配 149
4.20 尋找圖的輪廓 153
4.21 凸包 159
4.22 為輪廓建立許多矩形與
圓形 162
4.23 為輪廓建立旋轉的矩形與
橢圓形 164
4.24 圖像矩 166
4.25 點多邊形測試 169
4.26 線性變換 171
第5章 Calib3d模塊 173
5.1 使用棋盤進行相機校準 174
5.2 視差 193
第6章 Feature2d模塊 195
6.1 特征描述 196
6.2 哈瑞斯角點檢測 198
6.3 使用FLANN進行特征
匹配 200
6.4 使用Features2D和Homography
識別對象 202
6.5 Shi-Tomasi角點檢測 204
6.6 建立自定義的角點檢測 206
6.7 在次像素檢測角位置 209
6.8 特征檢測 211
第7章 Video模塊 213
7.1 圖像拍攝 214
7.2 生成視頻文件 215
7.3 指定幀 218
7.4 移動感知 219
7.5 計算移動時間 221
7.6 即時對象追蹤 225
7.7 播放暫停 229
第8章 Objdetect模塊 231
級聯式類分類 232
第9章 ML模塊 236
9.1 支持向量機的介紹 239
9.2 非線性可分開數據的支持
向量機 242
第10章 Contrib模塊 245
探索視網膜效果并用來進
行圖像處理 246
第11章 實際應用 251
11.1 圖像藏密 252
11.2 圖像采集 255
11.3 QR Code檢測 268
11.4 與OpenGL整合 275
附錄 281