Python OpenCV從入門到精通(第2版·AI賦能)
明日科技
- 出版商: 清華大學
- 出版日期: 2026-09-01
- 定價: $539
- 售價: $538
- 語言: 簡體中文
- ISBN: 7302724156
- ISBN-13: 9787302724155
-
相關分類:
Computer Vision、影像辨識 Image-recognition、Python
下單後立即進貨 (約4週~6週)
相關主題
商品描述
作者簡介
目錄大綱
目錄
第1篇 入門篇
第1章 Python與OpenCV 2
1.1 Python概述 2
1.1.1 了解Python 2
1.1.2 Python的應用領域 3
1.2 OpenCV概述 4
1.2.1 OpenCV是什麼 4
1.2.2 OpenCV的功能及應用領域 4
1.2.3 OpenCV的模塊架構 5
1.3 實踐與練習 6
第2章 搭建OpenCV開發環境 7
2.1 Python的下載和安裝 7
2.1.1 下載Python 7
2.1.2 安裝Python 8
2.1.3 測試Python是否安裝成功 9
2.2 PyCharm的下載和安裝 10
2.2.1 下載PyCharm 10
2.2.2 安裝PyCharm 10
2.2.3 使用PyCharm新建項目 11
2.3 安裝OpenCV 13
2.3.1 OpenCV的版本 13
2.3.2 安裝OpenCV 14
2.4 編寫第一個程序:讀取並顯示圖片 15
2.5 在PyCharm中集成AI工具 16
2.6 實踐與練習 18
第3章 圖像的基本操作 19
3.1 認識圖像 19
3.2 圖像的讀取與保存 20
3.2.1 讀取圖像 20
3.2.2 保存圖像 21
3.2.3 AI解讀cv2.imread()函數支持的圖像類型 21
3.3 圖像的顯示 22
3.3.1 顯示圖像 22
3.3.2 基於Matplotlib顯示圖像 24
3.4 獲取圖像屬性 26
3.5 實踐與練習 27
第4章 NumPy與像素的操作 28
4.1 認識NumPy 28
4.2 像素與NumPy的關聯 28
4.2.1 像素的本質 28
4.2.2 像素坐標體系 29
4.2.3 像素的顏色表示 30
4.2.4 修改像素的顏色值 31
4.2.5 像素在NumPy中的存儲形式 33
4.3 NumPy數組核心操作 34
4.3.1 創建數組 34
4.3.2 數據類型 41
4.3.3 數組的索引和切片 42
4.3.4 數組拼接 45
4.3.5 數組重塑、展平和擴展 47
4.3.6 數組轉置 48
4.3.7 AI解讀為什麼不包含終止值間隔約為416.67 49
4.3.8 AI輔助解決運行時警告問題 49
4.4 NumPy矩陣與運算 50
4.4.1 創建矩陣 50
4.4.2 矩陣基本運算 51
4.4.3 矩陣轉置/逆矩陣 53
4.4.4 數組統計分析函數 53
4.5 NumPy向量化與廣播機制 56
4.5.1 什麼是向量化 56
4.5.2 向量化常見操作 56
4.5.3 廣播機制原理與應用 57
4.6 NumPy在圖像中的應用 59
4.6.1 創建圖像 59
4.6.2 圖像區域提取 63
4.6.3 拼接圖像 63
4.7 實踐與練習 64
第5章 色彩空間與通道 67
5.1 色彩空間 67
5.1.1 什麼是色彩空間 67
5.1.2 GRAY色彩空間 67
5.1.3 HSV色彩空間 69
5.1.4 其他常用色彩空間 70
5.2 通道 71
5.2.1 拆分通道 71
5.2.2 合並通道 73
5.2.3 綜合運用拆分通道與合並通道 75
5.2.4 alpha 通道與透明度處理 77
5.3 案例1:AI輔助實現基於HSV的顏色分割 78
5.4 案例2:AI輔助實現基於YCrCb的膚色檢測 80
5.5 實踐與練習 81
第2篇 基礎篇
第6章 繪制圖形和文字 84
6.1 繪制基本圖形 84
6.1.1 繪制線段 84
6.1.2 繪制矩形 85
6.1.3 繪制圓形 87
6.1.4 繪制多邊形 90
6.2 繪制文字 91
6.2.1 putText()函數詳解 91
6.2.2 文字的斜體效果 93
6.2.3 文字的垂直鏡像效果 94
6.2.4 在圖像上繪制文字 94
6.2.5 AI 輔助解決 cv2.putText()函數繪制中文時的亂碼問題 95
6.3 動態繪制圖形與動畫效果 96
6.4 案例:實現一個簡單的圖像標註工具 98
6.5 實踐與練習 102
第7章 圖像的幾何變換 103
7.1 縮放 103
7.1.1 dsize 參數實現縮放 103
7.1.2 fx/fy參數實現縮放 104
7.1.3 AI實現批量統一圖像尺寸 105
7.2 翻轉 107
7.3 仿射變換 109
7.3.1 平移 110
7.3.2 旋轉 111
7.3.3 傾斜 112
7.4 透視變換 114
7.5 實踐與練習 116
第8章 圖像的閾值處理 118
8.1 AI詳細解讀閾值 118
8.2 閾值處理函數 118
8.3 “非黑即白”的圖像 119
8.3.1 二值化處理 119
8.3.2 反二值化處理 122
8.4 低/超閾值零處理 123
8.4.1 低閾值零處理 123
8.4.2 超閾值零處理 124
8.5 截斷閾值化處理 125
8.6 自適應處理 126
8.7 Otsu 方法 129
8.8 閾值處理的作用 130
8.9 實踐與練習 131
第9章 圖像的運算 133
9.1 掩模 133
9.2 圖像的加法運算 134
9.3 圖像的位運算 137
9.3.1 按位與運算 138
9.3.2 按位或運算 139
9.3.3 按位取反運算 140
9.3.4 按位異或運算 141
9.4 合並圖像 143
9.4.1 加權和 144
9.4.2 覆蓋 144
9.5 案例:AI 輔助實現圖像修復 147
9.6 實踐與練習 149
第3篇 進階篇
第10章 模板匹配 152
10.1 模板匹配方法 152
10.2 單模板匹配 153
10.2.1 單目標匹配 154
10.2.2 多目標匹配 157
10.3 多模板匹配 161
10.4 AI輔助解決模板匹配拼接圖像問題 164
10.5 實踐與練習 165
第11章 濾波器 167
11.1 均值濾波器 167
11.2 中值濾波器 169
11.3 高斯濾波器 170
11.4 雙邊濾波器 172
11.5 卷積濾波器 174
11.5.1 卷積函數實現圖像平滑處理 174
11.5.2 卷積函數實現邊緣檢測 175
11.6 實踐與練習 177
第12章 腐蝕與膨脹 178
12.1 腐蝕 178
12.2 膨脹 180
12.3 開運算 181
12.4 閉運算 183
12.5 形態學運算 184
12.5.1 梯度運算 184
12.5.2 頂帽運算 185
12.5.3 黑帽運算 186
12.6 AI解讀腐蝕和膨脹疊代次數對圖片質量的影響 187
12.7 實踐與練習 188
第13章 圖像特征檢測 190
13.1 圖像特征檢測概述 190
13.2 Canny邊緣檢測 191
13.3 角點檢測 192
13.3.1 Harris角點檢測 192
13.3.2 Shi-Tomasi角點檢測 194
13.3.3 亞像素級角點檢測 196
13.4 斑點檢測 197
13.4.1 AI解讀什麼是斑點檢測 197
13.4.2 斑點檢測的應用 199
13.5 紋理檢測 201
13.5.1 基於LBP的紋理檢測 201
13.5.2 基於Gabor濾波的紋理檢測 204
13.6 特征檢測與描述 205
13.6.1 ORB檢測算法 205
13.6.2 SIFT檢測算法 207
13.7 實踐與練習 208
第14章 圖像輪廓擬合 210
14.1 圖像的輪廓 210
14.2 輪廓擬合 214
14.2.1 矩形包圍框 214
14.2.2 圓形包圍框 215
14.3 凸包 216
14.4 霍夫變換 217
14.4.1 直線檢測 217
14.4.2 圓環檢測 219
14.5 案例:自動化物體輪廓檢測與測量 220
14.6 AI解釋什麼情況下應用高斯模糊 221
14.7 實踐與練習 222
第15章 視頻處理 224
15.1 讀取並顯示攝像頭視頻 224
15.1.1 VideoCapture類 224
15.1.2 如何使用VideoCapture類 225
15.2 播放視頻文件 229
15.2.1 讀取並顯示視頻文件 229
15.2.2 視頻的暫停播放和繼續播放 231
15.2.3 獲取視頻文件的屬性 232
15.3 保存視頻文件 235
15.3.1 VideoWriter類 235
15.3.2 如何使用VideoWriter類 236
15.4 多線程視頻流處理 240
15.4.1 視頻處理中多線程的應用 240
15.4.2 生產者-消費者線程 242
15.4.3 線程同步機制 244
15.4.4 多攝像頭並行處理 245
15.5 在學習多線程時AI給初學者的幾點建議 246
15.6 實踐與練習 247
第16章 人臉檢測與識別 249
16.1 傳統人臉檢測 249
16.1.1 Haar級聯分類器 249
16.1.2 人臉檢測實戰:從圖片到視頻 251
16.1.3 級聯分類器的擴展應用 254
16.2 基於深度學習的人臉檢測 257
16.2.1 MTCNN簡介與實現 257
16.2.2 dnn模塊基於Caffe/TensorFlow模型實現人臉檢測 260
16.2.3 AI詳細解讀Blob格式 263
16.3 人臉識別 265
16.3.1 FaceNet算法實現人臉識別 265
16.3.2 ArcFace算法實現人臉識別 267
16.4 案例:簡易人臉識別門禁系統 269
16.5 實踐與練習 272
第17章 OpenCV與深度學習模型 273
17.1 OpenCV 4.x的dnn模塊詳解 273
17.1.1 核心類與函數詳解 273
17.1.2 基本工作流程:從模型加載到推理輸出的完整過程解析 276
17.2 目標檢測實戰 279
17.2.1 YOLOv5模型:從模型下載、預處理到實時目標檢測的完整實現 280
17.2.2 SSD模型:實現快速目標檢測的優化方案 284
17.3 圖像語義分割實戰 286
17.3.1 DeepLabv3+模型應用:實現圖像背景移除的完整流程 286
17.3.2 無人駕駛場景分割:基於語義分割的實時場景分析 288
17.3.3 語義分割結果後處理:提升分割精度的實用技巧 291
17.3.4 AI解決cv2.imshow顯示效果不正確的問題 293
17.4 人體姿態識別實戰 294
17.4.1 MediaPipe模型:實現人體關鍵點檢測的完整代碼 295
17.4.2 關鍵點連接與可視化:構建人體姿態的可視化效果 299
17.4.3 姿態識別應用案例:運動分析、動作識別的實際應用場景 301
17.5 性能優化與工業級應用 305
17.5.1 OpenVINO工具包集成:CPU/GPU加速的配置與性能對比 306
17.5.2 CUDA加速:利用GPU進行深度學習推理的優化方案 307
17.5.3 模型量化與部署:從開發環境到生產環境的完整部署流程 308
17.6 實踐與練習 312
第4篇 項目篇
第18章 基於OpenCV的ArUco模塊實現AR視覺小應用 316
18.1 開發背景 316
18.2 系統設計 317
18.3 ArUco詳解 318
18.3.1 ArUco標記 318
18.3.2 ArUco模塊 320
18.4 前期工作 324
18.4.1 新建項目 324
18.4.2 打印ArUco標記 324
18.4.3 準備增強圖像 324
18.5 系統功能設計 325
18.5.1 導入模塊 325
18.5.2 主函數設計 325
18.5.3 增強圖像資源加載 326
18.5.4 ArUco標記識別 327
18.5.5 為ArUco標記疊加增強圖像 328
第19章 OpenCV+YOLO26在智能交通系統中的應用 330
19.1 開發背景 330
19.2 系統設計 330
19.3 YOLO26詳解 331
19.3.1 YOLO26概述 331
19.3.2 YOLO26核心函數/方法 332
19.4 前期工作 333
19.5 系統功能設計 335
19.5.1 實時交通流量統計 335
19.5.2 交通違章檢測 336
19.5.3 行人斑馬線監測 340



