OpenCV 4.5 電腦視覺開發實戰:基於 Python

OpenCV 4.5 電腦視覺開發實戰:基於 Python

作者: 朱文偉 李建英
出版社: 清華大學
出版在: 2022-02-01
ISBN-13: 9787302597636
ISBN-10: 7302597634





內容描述


OpenCV是一個跨平臺電腦視覺和機器學習軟件庫,也是電腦視覺領域的開發人員必須掌握的技術。本書基於Python 3.8全面、系統地介紹OpenCV 4.5的使用,並配套示例源代碼、開發環境與答疑服務。 本書共分15章,主要內容包括電腦視覺概述、OpenCV的Python開發環境搭建、OpenCV基本操作、數組矩陣、圖像處理模塊、灰度變換和直方圖修正、圖像平滑、幾何變換、圖像邊緣檢測、圖像分割、圖像金字塔、圖像形態學、視頻處理,以及停車場車牌識別、物體識別、運動跟蹤、人臉檢測等案例。 本書既適合電腦視覺與圖像處理、人工智能算法的開發人員閱讀,也適合高等院校和培訓機構電腦視覺與圖像處理、人工智能等相關專業的師生教學參考。


目錄大綱


目    錄
第1章  電腦視覺概述 1
1.1  圖像的基本概念 1
1.1.1  圖像和圖形 1
1.1.2  數字圖像及其特點 1
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  圖像處理的應用 12
1.5  電腦視覺概述 12
1.5.1  基本概念 12
1.5.2  電腦視覺的應用 14
1.5.3  與相關學科的區別 15
1.6  OpenCV概述 15
第2章  OpenCV的Python開發環境搭建 17
2.1  Python 3.8下載與安裝 17
2.2  在線安裝與卸載opencv-python 18
2.2.1  在線安裝opencv-python 18
2.2.2  卸載opencv-python 22
2.3  PyCharm 2021.2下載與安裝 23
2.3.1  PyCharm的下載和安裝 23
2.3.2  配置PyCharm開發OpenCV程序 24
2.3.3  導入配套源碼的方法 27
2.3.4  調試Python程序 27
2.4  測試一下NumPy的數學函數 28
第3章  OpenCV基本操作 29
3.1  OpenCV架構 29
3.2  圖像輸入輸出模塊imgcodecs 31
3.2.1  讀取圖像文件 31
3.2.2  得到讀取的圖片的高度和寬度 33
3.2.3  imwrite保存圖片 34
3.3  OpenCV界面編程 35
3.4  單窗口顯示多圖片 37
3.5  銷毀窗口 39
3.6  鼠標事件 40
3.7  鍵盤事件 44
3.8  滑動條事件 45
第4章  數組矩陣 47
4.1  NumPy概述 47
4.2  ndarray對象 48
4.3  NumPy的數據類型 49
4.4  數組屬性 52
4.5  新建數組 54
4.6  從已有的數組創建數組 55
4.7  從數值範圍創建數組 57
4.8  切片和索引 58
4.9  高級索引 60
4.9.1  整數數組索引 60
4.9.2  布爾索引 61
4.9.3  花式索引 61
4.10  迭代數組 62
4.10.1  迭代器對象nditer 62
4.10.2  控制遍歷順序 63
4.10.3  修改數組中元素的值 64
4.10.4  使用外部循環 64
4.10.5  廣播迭代 65
4.11  數組操作 66
4.11.1  修改數組形狀 66
4.11.2  翻轉數組 68
第5章  圖像處理模塊 72
5.1  顏色變換cvtColor 72
5.2  畫基本圖形 73
5.2.1  畫點 73
5.2.2  畫矩形 74
5.2.3  畫圓 74
5.2.4  畫橢圓 75
5.2.5  畫線段 77
5.2.6  畫多邊形 77
5.2.7  填充多邊形 78
5.3  文字繪制 80
5.4  為圖像添加邊框 82
5.5  在圖像中查找輪廓 84
第6章  灰度變換和直方圖修正 86
6.1  點運算 86
6.1.1  點運算的基本概念 86
6.1.2  點運算的目標與分類 86
6.1.3  點運算的特點和應用 87
6.2  灰度變換 88
6.2.1  灰度變換的基本概念 88
6.2.2  灰度變換的作用 88
6.2.3  灰度變換的方法 89
6.2.4  灰度化 89
6.2.5  對比度 93
6.2.6  灰度的線性變換 93
6.2.7  分段線性變換 95
6.2.8  對數變換和反對數變換 97
6.2.9  冪律變換 99
6.3  直方圖修正 101
6.3.1  直方圖的概念 101
6.3.2  直方圖均衡化 104
第7章  圖像平滑 108
7.1  圖像平滑基礎 108
7.2  線性濾波 110
7.2.1  歸一化方框濾波器 110
7.2.2  高斯濾波器 111
7.3  非線性濾波 116
7.3.1  中值濾波 116
7.3.2  雙邊濾波 116
第8章  幾何變換 118
8.1  幾何變換基礎 118
8.2  圖像平移 121
8.3  圖像旋轉 122
8.4  仿射變換 125
8.5  圖像縮放 127
8.5.1  縮放原理 127
8.5.2  OpenCV中的縮放 128
第9章  圖像邊緣檢測 130
9.1  概述 130
9.2  邊緣檢測研究的歷史現狀 133
9.3  邊緣定義及類型分析 134
9.4  梯度的概念 135
9.5  圖像邊緣檢測的應用 135
9.6  目前邊緣檢測存在的問題 137
9.7  邊緣檢測的基本思想 138
9.8  圖像邊緣檢測的步驟 139
9.9  經典圖像邊緣檢測算法 140
9.9.1  Roberts算子 141
9.9.2  Sobel算子邊緣檢測 143
9.9.3  Prewitt算子邊緣檢測 145
9.9.4  LoG邊緣檢測算子 147
9.9.5  邊緣檢測的最新技術與方法 150
第10章  圖像分割 153
10.1  圖像分割概述 153
10.2  圖像分割技術現狀 154
10.3  圖像分割的應用 155
10.4  圖像分割的數學定義 156
10.5  圖像分割方法的分類 157
10.5.1  基於閾值化的分割方法 158
10.5.2  基於邊緣的分割方法 159
10.5.3  基於區域的分割方法 159
10.5.4  基於神經網絡的分割方法 161
10.5.5  基於聚類的分割方法 162
10.6  使用OpenCV進行圖像分割 163
10.7  彩色圖像分割 168
10.8  grabCut算法分割圖像 170
10.8.1  基本概念 170
10.8.2  grabCut函數 171
10.9  floodFill漫水填充分割 176
10.9.1  基本概念 176
10.9.2  floodFill函數 177
10.10  分水嶺分割法 179
10.10.1  基本概念 179
10.10.2  wathershed函數 180
第11章  圖像金字塔 184
11.1  基本概念 184
11.2  高斯金字塔 185
11.2.1  向下取樣 186
11.2.2  向上取樣 187
11.3  拉普拉斯金字塔 189
第12章  圖像形態學 191
12.1  圖像形態學基本概念 191
12.2  形態學的應用 191
12.3  數學上的形態學 192
12.3.1  拓撲學 192
12.3.2  數學形態學的組成與操作分類 193
12.3.3  數學形態學的應用 193
12.4  結構元素 193
12.5  膨脹 194
12.6  腐蝕 195
12.7  開運算 196
12.8  閉運算 197
12.9  實現腐蝕和膨脹 198
12.10  開閉運算和頂帽/黑帽 200
12.11  用形態學運算檢測邊緣 203
12.12  擊中擊不中 204
12.13  利用形態學運算提取水平線和垂直線 207
第13章  視頻處理 209
13.1  OpenCV視頻處理架構 209
13.2  捕獲視頻類VideoCapture 210
13.2.1  構造VideoCapture對象 210
13.2.2  判斷打開視頻是否成功 211
13.2.3  讀取視頻幀 211
13.2.4  播放視頻文件 212
13.2.5  獲取和設置視頻屬性 214
13.2.6  播放攝像頭視頻 216
第14章  停車場車牌識別案例實戰 219
14.1  需求分析 219
14.2  技術可行性分析 220
14.2.1  國外技術分析 220
14.2.2  國內技術分析 222
14.2.3  車牌識別技術的難點 223
14.2.4  車牌識別系統概述 223
14.3  車牌定位技術 224
14.3.1  車牌特徵概述 224
14.3.2  車牌定位方法 225
14.3.3  車牌圖像預處理 229
14.3.4  車牌圖像的灰度化 229
14.3.5  車牌圖像的直方圖均衡化 231
14.3.6  車牌圖像的濾波 232
14.3.7  車牌圖像的二值化 233
14.3.8  車牌圖像的邊緣檢測 234
14.3.9  車牌圖像的灰度映射 234
14.3.10  車牌圖像的改進型投影法定位 235
14.4  車牌字符分割技術 236
14.4.1  常用車牌字符分割算法 236
14.4.2  車牌傾斜問題 238
14.4.3  車牌傾斜度檢測方法 239
14.4.4  車牌傾斜的校正方法 239
14.4.5  車牌邊框和鉚釘的去除 239
14.4.6  車牌字符分割 239
14.4.7  基於垂直投影和先驗知識的車牌字符分割 240
14.4.8  粘連車牌字符的分割 241
14.4.9  斷裂車牌字符的合並 241
14.4.10  對車牌字符的切分結果進行確認 242
14.5  車牌字符識別技術 242
14.5.1  模式識別 243
14.5.2  字符識別 244
14.5.3  漢字識別 254
第15章  OpenCV目標檢測 270
15.1  目標檢測概述 270
15.2  目標檢測的基本概念 272
15.3  視頻序列圖像預處理 274
15.4  基於深度學習的運動目標檢測 275
15.4.1  YOLO運動目標檢測算法 276
15.4.2  YOLOv2概述 280
15.4.3  YOLOv3概述 281
15.4.4  實戰YOLOv3識別物體 283
15.4.5  SSD運動目標檢測算法 292
15.4.6  實戰SSD 296
15.4.7  實戰人臉檢測 298




相關書籍

Practical Time Series Analysis: Prediction with Statistics and Machine Learning

作者 Aileen Nielsen

2022-02-01

Python數據分析與數據化運營 第2版

作者 宋天龍

2022-02-01

TensorFlow 與捲積神經網絡從算法入門到項目實戰

作者 華超

2022-02-01