機器學習:基於OpenCV和Python的智能圖像處理
內容描述
本書以Python語言為藍本,以OpenCV為框架,使用Anaconda搭建環境,
通過豐富的實例,從實驗、實踐、實用的角度,
詳細敘述了運用Python和OpenCV實現智能圖像處理的過程。
全書共12章,主要內容包括智能圖像處理入門、Python基礎、圖像處理基礎、
圖像幾何變換、圖像直方圖處理、圖像平滑濾波處理、圖像閾值處理、
圖像形態學處理、圖像分割處理、圖像梯度及邊緣檢測、
圖像輪廓檢測與擬合、人臉識別實現等,全面闡述了智能圖像處理的理論基礎和實現過程。
本書側重基礎、易學易懂,各章節既相對獨立又前後關聯,
其zuida的特點就是打破了傳統書籍的講解方法,在介紹各部分理論基礎的同時,
搭配具體實例,通過對相關程序的詳細講解,幫助讀者進一步加深對理論基礎的理解。
本書每章配有習題,以指導讀者深入學習智能圖像處理技術。
目錄大綱
前言
第1章智能圖像處理入門1
1.1智能圖像處理概述1
1.2環境搭建2
1.2.1安裝Python 2
1.2.2安裝PyCharm 8
1.2.3 PyCharm的初始化12
1.2.4 OpenCV及常用庫的配置15
1.3思考與練習17
第2章Python基礎18
2.1數據類型18
2.1.1數值類型18
2.1.2字符串類型20
2.1.3布爾類型20
2.2變量與常量21
2.3運算符21
2.3.1運算符簡介21
2.3. 2運算符優先級21
2.4選擇與循環22
2.4.1 if語句22
2.4.2 while循環25
2.4.3 for循環27
2.4.4 break和continue語句29
2.5列表與元組31
2.5.1創建31
2.5. 2查詢32
2.5.3修改33
2.5.4刪除34
2.6字典35
2.6.1字典的創建35
2.6.2字典的常規操作36
2.6.3字典的遍歷37
2.7函數38
2.7.1函數的定義與調用38
2.7.2參數傳遞40
2.8面向對象編程42
2.8.1類與對象42
2.8.2繼承與多態44
2.9思考與練習46
第3章圖像處理基礎48
3.1圖像的基本表示方法48
3.1.1二值圖像48
3.1.2灰度圖像48
3.1.3彩色圖像49
3.2圖像處理的基本操作50
3.2.1圖像的讀取、顯示和保存50
3.2.2圖像通道的基本操作53
3.2.3圖像屬性的獲取55
3.3初識Numpy.array 56
3.4圖像運算57
3.4.1加法運算57
3.4.2減法運算59
3.4.3乘法運算61
3.4.4除法運算63
3.4. 5邏輯運算64
3.5圖像的色彩空間轉換68
3.5.1色彩空間類型轉換函數68
3.5.2 RGB色彩空間68
3.5.3 GRAY色彩空間69
3.5.4 YCrCb色彩空間70
3.5.5 HSV色彩空間71
3.6思考與練習73
第4章圖像幾何變換74
4.1仿射變換74
4.1.1平移75
4.1.2縮放76
4.1.3旋轉77
4.2重映射78
4.2.1複製78
4.2.2繞x軸翻轉80
4.2.3繞y軸翻轉82
4.2.4繞x軸與y軸翻轉85
4.3投影變換87
4.3.1原理簡介87
4.3.2 Python實現87
4.4極坐標變換89
4.4.1原理簡介89
4.4.2 Python實現90
4.5思考與練習93
第5章圖像直方圖處理94
5.1直方圖概述94
5.2直方圖的繪製95
5.2.1用OpenCV繪製直方圖95
5.2.2用pyplot繪製直方圖98
5.3直方圖正規化99
5.3.1正規化原理99
5.3.2 Python實現99
5.3.3使用normalize實現100
5.4直方圖均衡化102
5.4.1均衡化原理簡介102
5.4.2 Python實現104
5.4.3自適應直方圖均衡化108
5.5思考與練習110
第6章圖像平滑濾波處理111
6.1圖像平滑概述111
6.2高斯濾波112
6.2.1原理簡介112
6.2.2 Python實現113
6.3均值濾波114
6.3.1原理簡介114
6.3.2 Python實現115
6.4方框濾波117
6.4.1原理簡介117
6.4. 2 Python實現117
6.5中值濾波119
6.5.1原理簡介119
6.5.2 Python實現120
6.6雙邊濾波121
6.6.1原理簡介121
6.6.2 Python實現122
6.7 2D卷積核的實現123
6.8思考與練習125
第7章圖像閾值處理126
7.1閾值處理概述126
7.2全局閾值處理126
7.2.1原理簡介126
7.2.2 OpenCV閾值函數cv2.threshold() 127
7.2.3閾值分割實例127
7.3局部閾值處理136
7.3.1原理簡介136
7.3.2 cv2.adaptiveThreshold()函數137
7.4 Otsu閾值處理139
7.4.1原理簡介139
7.4.2 Python實現140
7.5思考與練習141
第8章圖像形態學處理142
8.1腐蝕142
8.1.1原理簡介142
8.1.2 Python實現143
8.2膨脹145
8.2.1原理簡介145
8.2.2 Python實現146
8.3形態學梯度運算148
8.3.1原理簡介148
8.3.2 Python實現148
8.4開運算與閉運算149
8.4.1原理簡介150
8.4.2 Python實現150
8.5黑帽與禮帽運算153
8.5.1原理簡介153
8.5 .2 Python實現154
8.6思考與練習155
第9章圖像分割處理157
9.1分水嶺算法的介紹與實現157
9.1.1算法原理157
9.1.2 OpenCV中的相關函數158
9.2圖像的金字塔分割165
9.2.1圖像金字塔簡介165
9.2.2 OpenCV中的相關函數166
9.2.3用金字塔算法實現圖像分割170
9.3思考與練習171
第10章圖像梯度及邊緣檢測172
10.1 Sobel算子172
10.1.1原理簡介172
10.1.2 Python實現173
10.2 Scharr算子176
10.2.1原理簡介176
10.2.2 Python實現176
10.3 Canny邊緣檢測179
10.3.1原理簡介179
10.3.2 Python實現180
10.4 Laplacian算子182
10.4.1原理簡介182
10.4.2 Python實現182
10.5高斯拉普拉斯邊緣檢測184
10.5.1原理簡介184
10.5.2 Python實現185
10.6思考與練習187
第11章圖像輪廓檢測與擬合188
11.1 OpenCV中輪廓的查找與繪製188
11.1.1輪廓的查找與繪製188
11.1.2查找繪製輪廓的實例189
11.2 OpenCV中輪廓的周長與面積192
11.2.1周長計算:cv2. arcLength()函數192
11.2.2面積計算:cv2.contourArea()函數193
11.3幾何圖形的最小外包與擬合194
11.3.1最小外包矩形195
11.3.2最小外包圓形196
11.3.3最小外包三角形197
11.3.4最小外包橢圓199
11.3.5 zuiyou擬合直線200
11.4霍夫檢測201
11.4.1霍夫直線檢測201
11.4.2霍夫圓檢測204
11.5思考與練習205
第12章人臉識別實現207
12.1繪圖基礎207
12.1.1繪製直線:cv2.line()函數207
12.1.2繪製矩形:cv2.rectangle()函數209
12.1.3繪製圓形:cv2.circle()函數210
12.1.4繪製橢圓:cv2.ellipse()函數212
12.1.5在圖形上繪製文字:cv2.putText()函數213
12.2人臉檢測214
12.2.1 OpenCV中級聯分類器的使用215
12.2.2 Python實現215
12.3人臉識別217
12.3.1原理簡介217
12.3.2相關函數217
12.3.3 LBPH人臉識別的Python實現218
12.4用Fisherfaces與EigenFaces算法進行人臉識別220
12.4.1相關函數220
12.4.2 Python實現221
12.5思考與練習223