OpenCV電腦視覺開發實踐:基於Python
朱文偉、李建英
- 出版商: 清華大學
- 出版日期: 2025-03-01
- 定價: $774
- 售價: 8.5 折 $658
- 語言: 簡體中文
- ISBN: 7302679320
- ISBN-13: 9787302679325
-
相關分類:
影像辨識 Image-recognition、Computer Vision
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目 錄
第 1 章 電腦視覺概述 1
1.1 圖像的基本概念 1
1.1.1 圖像和圖形 1
1.1.2 數字圖像及其特點 2
1.1.3 圖像單位 2
1.1.4 圖像分辨率與屏幕分辨率 3
1.1.5 圖像的灰度與灰度級 3
1.1.6 圖像的深度 4
1.1.7 二值圖像、灰度圖像與彩色圖像 4
1.1.8 通道 5
1.1.9 圖像存儲 5
1.2 圖像噪聲 5
1.2.1 圖像噪聲的定義 5
1.2.2 圖像噪聲的來源 6
1.2.3 圖像噪聲的濾除 6
1.3 圖像處理 7
1.3.1 圖像處理的分類 7
1.3.2 數字圖像處理 8
1.3.3 數字圖像處理常用方法 9
1.3.4 圖像處理的應用 11
1.4 電腦視覺概述 12
1.4.1 基本概念 12
1.4.2 電腦視覺的應用 13
1.4.3 與相關學科的區別 14
1.5 OpenCV概述 15
第 2 章 OpenCV的Python開發環境搭建 18
2.1 Python下載與安裝 18
2.2 在線安裝與卸載opencv-python 20
2.2.1 在線安裝opencv-python 20
2.2.2 卸載opencv-python 24
2.3 離線安裝opencv-python 24
2.3.1 下載離線版opencv-python 25
2.3.2 離線安裝NumPy和Matplotlib庫 25
2.3.3 離線安裝opencv-python 25
2.4 使用集成開發環境PyCharm 26
2.4.1 PyCharm的下載和安裝 26
2.4.2 瞭解PyCharm的虛擬環境 32
2.4.3 在PyCharm下開發OpenCV程序 34
2.4.4 調試Python程序 35
2.5 測試一下NumPy的數學函數 36
第 3 章 OpenCV基本操作 37
3.1 OpenCV架構 37
3.2 圖像輸入/輸出模塊imgcodecs 39
3.2.1 讀取圖像文件 39
3.2.2 得到讀取的圖片的高度和寬度 42
3.2.3 imwrite保存圖片 42
3.3 OpenCV界面編程 44
3.4 單窗口顯示多圖片 45
3.5 銷毀窗口 47
3.6 調整窗口大小 48
3.7 鼠標事件 49
3.8 鍵盤事件 52
3.9 滑動條事件 53
第 4 章 數組矩陣 56
4.1 NumPy概述 56
4.2 ndarray對象 57
4.3 NumPy的數據類型 59
4.4 數組屬性 61
4.5 新建數組 63
4.6 通過已有的數組創建數組 65
4.7 通過數值範圍創建數組 66
4.8 切片和索引 67
4.9 高級索引 69
4.9.1 整數數組索引 69
4.9.2 布爾索引 70
4.9.3 花式索引 71
4.10 迭代數組 72
4.10.1 迭代器對象nditer 72
4.10.2 控制遍歷順序 73
4.10.3 修改數組中元素的值 73
4.10.4 使用外部循環 74
4.10.5 廣播迭代 74
4.11 數組操作 75
4.11.1 修改數組形狀 75
4.11.2 翻轉數組 77
第 5 章 圖像處理模塊 81
5.1 顏色變換cvtColor 81
5.2 畫基本圖形 82
5.2.1 畫點 82
5.2.2 畫矩形 83
5.2.3 畫圓 83
5.2.4 畫橢圓 84
5.2.5 畫線段 86
5.2.6 畫多邊形 86
5.2.7 填充多邊形 87
5.3 文字繪制 89
5.4 為圖像添加邊框 91
5.5 在圖像中查找輪廓 93
第 6 章 灰度變換和直方圖修正 95
6.1 點運算 95
6.1.1 點運算的基本概念 95
6.1.2 點運算的目標與分類 96
6.1.3 點運算的特點和應用 96
6.2 灰度變換 97
6.2.1 灰度變換的基本概念 97
6.2.2 灰度變換的作用 97
6.2.3 灰度變換的方法 98
6.2.4 灰度化 98
6.2.5 對比度 101
6.2.6 灰度的線性變換 102
6.2.7 分段線性變換 104
6.2.8 對數變換和反對數變換 106
6.2.9 冪律變換 107
6.3 直方圖修正 109
6.3.1 直方圖的概念 109
6.3.2 直方圖均衡化 112
第 7 章 圖像平滑 117
7.1 圖像平滑基礎 117
7.2 線性濾波 119
7.2.1 歸一化方框濾波器 119
7.2.2 高斯濾波器 120
7.3 非線性濾波 124
7.3.1 中值濾波 124
7.3.2 雙邊濾波 125
第 8 章 幾何變換 127
8.1 幾何變換基礎 127
8.2 圖像平移 130
8.3 圖像旋轉 131
8.4 仿射變換 134
8.5 圖像縮放 136
8.5.1 縮放原理 136
8.5.2 OpenCV中的縮放 137
第 9 章 圖像邊緣檢測 139
9.1 概述 139
9.2 邊緣檢測研究的歷史現狀 141
9.3 邊緣定義及類型分析 142
9.4 梯度的概念 144
9.5 圖像邊緣檢測的應用 144
9.6 目前邊緣檢測存在的問題 146
9.7 邊緣檢測的基本思想 147
9.8 圖像邊緣檢測的步驟 147
9.9 經典圖像邊緣檢測算法 149
9.9.1 Roberts算子 150
9.9.2 Sobel算子邊緣檢測 151
9.9.3 Prewitt算子邊緣檢測 153
9.9.4 LoG邊緣檢測算子 155
9.9.5 邊緣檢測的最新技術與方法 158
第 10 章 圖像分割 161
10.1 圖像分割概述 161
10.2 圖像分割技術現狀 162
10.3 圖像分割的應用 163
10.4 圖像分割的數學定義 164
10.5 圖像分割方法的分類 165
10.5.1 基於閾值化的分割方法 165
10.5.2 基於邊緣的分割方法 166
10.5.3 基於區域的分割方法 167
10.5.4 基於神經網絡的分割方法 169
10.5.5 基於聚類的分割方法 169
10.6 使用OpenCV進行圖像分割 170
10.7 彩色圖像分割 175
10.8 grabCut算法分割圖像 177
10.8.1 基本概念 177
10.8.2 grabCut函數 179
10.9 floodFill漫水填充分割 183
10.9.1 基本概念 183
10.9.2 floodFill函數 183
10.10 分水嶺分割法 185
10.10.1 基本概念 186
10.10.2 距離變換函數distanceTransform 189
10.10.3 區域標記函數connectedComponents 191
10.10.4 分水嶺函數wathershed 192
第 11 章 圖像金字塔 195
11.1 基本概念 195
11.2 高斯金字塔 196
11.2.1 向下採樣 197
11.2.2 向上採樣 198
11.3 拉普拉斯金字塔 200
第 12 章 圖像形態學 202
12.1 圖像形態學基本概念 202
12.2 形態學的應用 202
12.3 數學上的形態學 203
12.3.1 拓撲學 203
12.3.2 數學形態學的組成與操作分類 204
12.3.3 數學形態學的應用 204
12.4 結構元素 205
12.5 膨脹 205
12.6 腐蝕 207
12.7 開運算 209
12.8 閉運算 210
12.9 實現腐蝕和膨脹 211
12.10 實現開閉運算和頂帽/黑帽 215
12.11 用形態學運算檢測邊緣 219
12.12 擊中擊不中 220
12.13 利用形態學運算提取水平線和垂直線 223
第 13 章 視頻處理 225
13.1 OpenCV視頻處理架構 225
13.2 捕獲視頻類VideoCapture 226
13.2.1 構造VideoCapture對象 226
13.2.2 判斷打開視頻是否成功 227
13.2.3 讀取視頻幀 227
13.2.4 播放視頻文件 228
13.2.5 獲取和設置視頻屬性 230
13.2.6 播放攝像頭視頻 232
第 14 章 停車場車牌識別案例實戰 235
14.1 需求分析 235
14.2 技術可行性分析 236
14.2.1 國外技術分析 236
14.2.2 國內技術分析 238
14.2.3 車牌識別技術的難點 239
14.2.4 車牌識別系統概述 239
14.3 車牌定位技術 240
14.3.1 車牌特徵概述 240
14.3.2 車牌定位方法 241
14.3.3 車牌圖像預處理 245
14.3.4 車牌圖像的灰度化 245
14.3.5 車牌圖像的直方圖均衡化 247
14.3.6 車牌圖像的濾波 248
14.3.7 車牌圖像的二值化 249
14.3.8 車牌圖像的邊緣檢測 249
14.3.9 車牌圖像的灰度映射 250
14.3.10 車牌圖像的改進型投影法定位 250
14.4 車牌字符分割技術 252
14.4.1 常用車牌字符分割算法 252
14.4.2 車牌傾斜問題 254
14.4.3 車牌傾斜度檢測方法 254
14.4.4 車牌傾斜的校正方法 255
14.4.5 車牌邊框和鉚釘的去除 255
14.4.6 車牌字符分割 255
14.4.7 基於垂直投影和先驗知識的車牌字符分割 256
14.4.8 粘連車牌字符的分割 257
14.4.9 斷裂車牌字符的合並 257
14.4.10 對車牌字符的切分結果進行確認 258
14.5 車牌字符識別技術 259
14.5.1 模式識別 259
14.5.2 字符識別 260
14.5.3 漢字識別 270
第 15 章 OpenCV目標檢測 286
15.1 目標檢測概述 286
15.2 目標檢測的基本概念 288
15.3 視頻序列圖像預處理 290
15.4 基於深度學習的運動目標檢測 291
15.4.1 YOLO運動目標檢測算法 292
15.4.2 YOLOv2概述 296
15.4.3 YOLOv3概述 297
15.4.4 實戰YOLOv3識別物體 299
15.4.5 SSD運動目標檢測算法 309
15.4.6 實戰SSD 312
15.4.7 實戰人臉檢測 314
第 16 章 數字水印 319
16.1 基本概念 319
16.1.1 數字水印的概念 319
16.1.2 數字水印的特點 320
16.2 數字水印原理 320
16.2.1 嵌入過程 321
16.2.2 提取過程 321
16.3 相關函數 321
16.3.1 cv2.bitwise_and函數 322
16.3.2 cv2.bitwise_or函數 323
16.4 代碼實現數字水印 324
第 17 章 圖像加密和解密 326
17.1 圖像加密和解密原理 326
17.2 相關函數 327
17.3 代碼實現圖像加解密 328
第 18 章 物體計數 330
18.1 基本原理 330
18.2 相關函數 330
18.3 代碼實現藥片計數 332
第 19 章 圖像輪廓 335
19.1 基本概念 335
19.2 應用場景 336
19.3 OpenCV中的輪廓函數 336
19.3.1 查找輪廓findContours 336
19.3.2 輪廓的基本屬性 337
19.3.3 繪制輪廓drawContours 338
19.3.4 求輪廓面積contourArea 338
19.4 實戰輪廓函數 339
19.5 實戰黑白翻轉 341
第 20 章 手勢識別 343
20.1 概述 343
20.2 NumPy中的ndarray 343
20.2.1 NumPy是什麽 344
20.2.2 ndarray的概念 344
20.2.3 ndarray的特點 345
20.2.4 NumPy數組的優勢 345
20.2.5 內存中的ndarray對象 345
20.2.6 ndarray數組對象的創建 346
20.2.7 ndarray的重要屬性 351
20.2.8 數組的軸和軸的長度 352
20.3 凸包和凸包檢測 355
20.4 凸缺陷及其應用 360
20.4.1 查找凸包和凸缺陷的示例 361
20.4.2 凸缺陷的應用 363
20.5 手勢識別原理 364
20.6 區分手勢0和手勢1 365
20.7 區分手勢1到手勢5 367