Python OpenCV從入門到精通(第2版·AI賦能)

明日科技

  • Python OpenCV從入門到精通(第2版·AI賦能)-preview-1
  • Python OpenCV從入門到精通(第2版·AI賦能)-preview-2
  • Python OpenCV從入門到精通(第2版·AI賦能)-preview-3
Python OpenCV從入門到精通(第2版·AI賦能)-preview-1

相關主題

商品描述

《Python OpenCV從入門到精通(第2版·AI賦能)》以 Python 開發為基礎,以 OpenCV 為核心工具,系統構建了從圖像處理到深度學習模型應用的完整知識體系。全書共 19 章,內容涵蓋 Python 與 OpenCV、搭建 OpenCV 開發環境、圖像的基本操作、NumPy 與像素的操作、色彩空間與通道、繪制圖形和文字、圖像的幾何變換、圖像的閾值處理、圖像的運算、模板匹配、濾波器、腐蝕與膨脹、圖像特征檢測、圖像輪廓擬合、視頻處理、人臉檢測與識別、OpenCV 與深度學習模型、基於 OpenCV 的 ArUco 模塊實現 AR 視覺小應用、OpenCV+YOLO26 在智能交通系統中的應用。本書配圖詳實,直觀呈現處理後的圖像與原圖之間的差異;在講解OpenCV 提供的函數/方法時,詳細列舉了必需參數和可選參數,幫助讀者快速掌握語法規範。同時,本書深入結合 AI 輔助答疑功能,全面提升學習效率。實戰部分尤為亮眼:第 18 章基於 OpenCV 的 ArUco 模塊,指導讀者開發 AR 視覺小應用,將理論知識與實際交互相結合;第 19 章結合當下熱門的 YOLO26 技術,講解 OpenCV 在智能交通系統中的落地應用,涵蓋目標檢測、場景分析等實戰場景,幫助讀者學會運用 OpenCV 解決工業級視覺問題。

作者簡介

明日科技,全稱是吉林省明日科技有限公司,是一家專業從事軟件開發、教育培訓以及軟件開發教育資源整合的高科技公司,其編寫的教材非常註重選取軟件開發中的必需、常用內容,同時也很註重內容的易學、方便性以及相關知識的拓展性,深受讀者喜愛。其教材多次榮獲“全行業****品種”“全國高校出版社****書”等獎項,多個品種長期位居同類圖書銷售排行榜的前列。

目錄大綱

目錄

第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