OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn):基于Python
定 價(jià):79 元
叢書名:人工智能技術(shù)叢書
- 作者:朱文偉 李建英
- 出版時(shí)間:2022/2/1
- ISBN:9787302597636
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP302.7
- 頁碼:312
- 紙張:
- 版次:1
- 開本:
OpenCV是一個(gè)跨平臺(tái)計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,也是計(jì)算機(jī)視覺領(lǐng)域的開發(fā)人員必須掌握的技術(shù)。本書基于Python 3.8全面、系統(tǒng)地介紹OpenCV 4.5的使用,并配套示例源代碼、開發(fā)環(huán)境與答疑服務(wù)。
本書共分15章,主要內(nèi)容包括計(jì)算機(jī)視覺概述、OpenCV的Python開發(fā)環(huán)境搭建、OpenCV基本操作、數(shù)組矩陣、圖像處理模塊、灰度變換和直方圖修正、圖像平滑、幾何變換、圖像邊緣檢測、圖像分割、圖像金字塔、圖像形態(tài)學(xué)、視頻處理,以及停車場車牌識(shí)別、物體識(shí)別、運(yùn)動(dòng)跟蹤、人臉檢測等案例。
本書既適合計(jì)算機(jī)視覺與圖像處理、人工智能算法的開發(fā)人員閱讀,也適合高等院校和培訓(xùn)機(jī)構(gòu)計(jì)算機(jī)視覺與圖像處理、人工智能等相關(guān)專業(yè)的師生教學(xué)參考。
如今,計(jì)算機(jī)視覺算法的應(yīng)用已經(jīng)滲透到我們生活的方方面面。機(jī)器人、無人機(jī)、增強(qiáng)現(xiàn)實(shí)、虛擬現(xiàn)實(shí)、醫(yī)學(xué)影像分析等無一不涉及計(jì)算機(jī)視覺算法。OpenCV是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)圖形與圖像算法庫,它由一系列 C 函數(shù)和少量 C 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB、C#、Ch、Ruby等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。它輕量級而且高效,在學(xué)術(shù)界、工業(yè)界都得到了廣泛的使用。無論是初學(xué)者還是資深研究人員,都可以在其中找到得心應(yīng)手的武器,幫助你在研究和應(yīng)用開發(fā)的道路上披荊斬棘。
關(guān)于本書
近年來,在圖像分割、物體識(shí)別、運(yùn)動(dòng)跟蹤、人臉識(shí)別、目標(biāo)檢測、機(jī)器視覺、機(jī)器人等領(lǐng)域,OpenCV可謂大顯身手。OpenCV內(nèi)容之豐富,是目前開源視覺算法庫中罕見的。每年我們都能看到不少關(guān)于OpenCV的圖書,但是隨著OpenCV版本的更迭,部分學(xué)習(xí)資料已經(jīng)過時(shí)。本書基于Python 3.8和OpenCV 4.5版本編寫,面向初學(xué)者,涵蓋傳統(tǒng)的圖形圖像算法與視頻處理方法,并配以示例代碼,內(nèi)容豐富,行文通俗。
本書不僅剖析了大量OpenCV函數(shù)的調(diào)用細(xì)節(jié),還對原理解釋得清晰明了,讓讀者知其然,并知其所以然。本書介紹OpenCV 4.5中220多個(gè)函數(shù),并給出100多個(gè)示例程序,以及車牌識(shí)別、物體識(shí)別、運(yùn)動(dòng)跟蹤、人臉檢測等案例。在介紹OpenCV 4.5新技術(shù)的同時(shí),盡量講解其背后的原理和公式,為大家以后做專業(yè)的圖像開發(fā)奠定基礎(chǔ)。
源碼下載、開發(fā)環(huán)境與答疑服務(wù)
本書示例源碼、開發(fā)環(huán)境,請用微信掃描下方的二維碼下載,可按掃描出來的頁面提示,把鏈接轉(zhuǎn)發(fā)到自己的郵箱中下載。雖然筆者盡了努力編寫本書,但書中依然可能存在疏漏,敬請讀者提出寶貴意見和建議,作者答疑服務(wù)電子郵箱是booksaga@163.com,郵件主題寫OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn)。
本書讀者與鳴謝
本書需要有Python編程基礎(chǔ),適合以下讀者閱讀:
計(jì)算機(jī)視覺領(lǐng)域的初學(xué)者
人工智能圖像處理開發(fā)人員
高等院校計(jì)算機(jī)視覺課程的師生
培訓(xùn)機(jī)構(gòu)的師生
本書由朱文偉和李建英創(chuàng)作。在圖書出版過程中得到清華大學(xué)出版社老師們的支持和幫助,在此表示衷心的感謝。
作 者
2022年1月
朱文偉,名校計(jì)算機(jī)專業(yè)碩士,20年C\C 、Java開發(fā)經(jīng)驗(yàn)。主導(dǎo)開發(fā)過密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書《Visual C 2013從入門到精通》《密碼學(xué)原理與Java實(shí)現(xiàn)》《Linux C與C 一線開發(fā)實(shí)踐》《OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn)(基于VC )》。
第1章 計(jì)算機(jī)視覺概述 1
1.1 圖像的基本概念 1
1.1.1 圖像和圖形 1
1.1.2 數(shù)字圖像及其特點(diǎn) 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 圖像存儲(chǔ) 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 數(shù)字圖像處理 8
1.3.3 數(shù)字圖像處理常用方法 9
1.3.4 圖像處理的應(yīng)用 12
1.5 計(jì)算機(jī)視覺概述 12
1.5.1 基本概念 12
1.5.2 計(jì)算機(jī)視覺的應(yīng)用 14
1.5.3 與相關(guān)學(xué)科的區(qū)別 15
1.6 OpenCV概述 15
第2章 OpenCV的Python開發(fā)環(huán)境搭建 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開發(fā)OpenCV程序 24
2.3.3 導(dǎo)入配套源碼的方法 27
2.3.4 調(diào)試Python程序 27
2.4 測試一下NumPy的數(shù)學(xué)函數(shù) 28
第3章 OpenCV基本操作 29
3.1 OpenCV架構(gòu) 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 鼠標(biāo)事件 40
3.7 鍵盤事件 44
3.8 滑動(dòng)條事件 45
第4章 數(shù)組矩陣 47
4.1 NumPy概述 47
4.2 ndarray對象 48
4.3 NumPy的數(shù)據(jù)類型 49
4.4 數(shù)組屬性 52
4.5 新建數(shù)組 54
4.6 從已有的數(shù)組創(chuàng)建數(shù)組 55
4.7 從數(shù)值范圍創(chuàng)建數(shù)組 57
4.8 切片和索引 58
4.9 高級索引 60
4.9.1 整數(shù)數(shù)組索引 60
4.9.2 布爾索引 61
4.9.3 花式索引 61
4.10 迭代數(shù)組 62
4.10.1 迭代器對象nditer 62
4.10.2 控制遍歷順序 63
4.10.3 修改數(shù)組中元素的值 64
4.10.4 使用外部循環(huán) 64
4.10.5 廣播迭代 65
4.11 數(shù)組操作 66
4.11.1 修改數(shù)組形狀 66
4.11.2 翻轉(zhuǎn)數(shù)組 68
第5章 圖像處理模塊 72
5.1 顏色變換cvtColor 72
5.2 畫基本圖形 73
5.2.1 畫點(diǎn) 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 點(diǎn)運(yùn)算 86
6.1.1 點(diǎn)運(yùn)算的基本概念 86
6.1.2 點(diǎn)運(yùn)算的目標(biāo)與分類 86
6.1.3 點(diǎn)運(yùn)算的特點(diǎn)和應(yīng)用 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 對數(shù)變換和反對數(shù)變換 97
6.2.9 冪律變換 99
6.3 直方圖修正 101
6.3.1 直方圖的概念 101
6.3.2 直方圖均衡化 104
第7章 圖像平滑 108
7.1 圖像平滑基礎(chǔ) 108
7.2 線性濾波 110
7.2.1 歸一化方框?yàn)V波器 110
7.2.2 高斯濾波器 111
7.3 非線性濾波 116
7.3.1 中值濾波 116
7.3.2 雙邊濾波 116
第8章 幾何變換 118
8.1 幾何變換基礎(chǔ) 118
8.2 圖像平移 121
8.3 圖像旋轉(zhuǎn) 122
8.4 仿射變換 125
8.5 圖像縮放 127
8.5.1 縮放原理 127
8.5.2 OpenCV中的縮放 128
第9章 圖像邊緣檢測 130
9.1 概述 130
9.2 邊緣檢測研究的歷史現(xiàn)狀 133
9.3 邊緣定義及類型分析 134
9.4 梯度的概念 135
9.5 圖像邊緣檢測的應(yīng)用 135
9.6 目前邊緣檢測存在的問題 137
9.7 邊緣檢測的基本思想 138
9.8 圖像邊緣檢測的步驟 139
9.9 經(jīng)典圖像邊緣檢測算法 140
9.9.1 Roberts算子 141
9.9.2 Sobel算子邊緣檢測 143
9.9.3 Prewitt算子邊緣檢測 145
9.9.4 LoG邊緣檢測算子 147
9.9.5 邊緣檢測的技術(shù)與方法 150
第10章 圖像分割 153
10.1 圖像分割概述 153
10.2 圖像分割技術(shù)現(xiàn)狀 154
10.3 圖像分割的應(yīng)用 155
10.4 圖像分割的數(shù)學(xué)定義 156
10.5 圖像分割方法的分類 157
10.5.1 基于閾值化的分割方法 158
10.5.2 基于邊緣的分割方法 159
10.5.3 基于區(qū)域的分割方法 159
10.5.4 基于神經(jīng)網(wǎng)絡(luò)的分割方法 161
10.5.5 基于聚類的分割方法 162
10.6 使用OpenCV進(jìn)行圖像分割 163
10.7 彩色圖像分割 168
10.8 grabCut算法分割圖像 170
10.8.1 基本概念 170
10.8.2 grabCut函數(shù) 171
10.9 floodFill漫水填充分割 176
10.9.1 基本概念 176
10.9.2 floodFill函數(shù) 177
10.10 分水嶺分割法 179
10.10.1 基本概念 179
10.10.2 wathershed函數(shù) 180
第11章 圖像金字塔 184
11.1 基本概念 184
11.2 高斯金字塔 185
11.2.1 向下取樣 186
11.2.2 向上取樣 187
11.3 拉普拉斯金字塔 189
第12章 圖像形態(tài)學(xué) 191
12.1 圖像形態(tài)學(xué)基本概念 191
12.2 形態(tài)學(xué)的應(yīng)用 191
12.3 數(shù)學(xué)上的形態(tài)學(xué) 192
12.3.1 拓?fù)鋵W(xué) 192
12.3.2 數(shù)學(xué)形態(tài)學(xué)的組成與操作分類 193
12.3.3 數(shù)學(xué)形態(tài)學(xué)的應(yīng)用 193
12.4 結(jié)構(gòu)元素 193
12.5 膨脹 194
12.6 腐蝕 195
12.7 開運(yùn)算 196
12.8 閉運(yùn)算 197
12.9 實(shí)現(xiàn)腐蝕和膨脹 198
12.10 開閉運(yùn)算和頂帽/黑帽 200
12.11 用形態(tài)學(xué)運(yùn)算檢測邊緣 203
12.12 擊中擊不中 204
12.13 利用形態(tài)學(xué)運(yùn)算提取水平線和垂直線 207
第13章 視頻處理 209
13.1 OpenCV視頻處理架構(gòu) 209
13.2 捕獲視頻類VideoCapture 210
13.2.1 構(gòu)造VideoCapture對象 210
13.2.2 判斷打開視頻是否成功 211
13.2.3 讀取視頻幀 211
13.2.4 播放視頻文件 212
13.2.5 獲取和設(shè)置視頻屬性 214
13.2.6 播放攝像頭視頻 216
第14章 停車場車牌識(shí)別案例實(shí)戰(zhàn) 219
14.1 需求分析 219
14.2 技術(shù)可行性分析 220
14.2.1 國外技術(shù)分析 220
14.2.2 國內(nèi)技術(shù)分析 222
14.2.3 車牌識(shí)別技術(shù)的難點(diǎn) 223
14.2.4 車牌識(shí)別系統(tǒng)概述 223
14.3 車牌定位技術(shù) 224
14.3.1 車牌特征概述 224
14.3.2 車牌定位方法 225
14.3.3 車牌圖像預(yù)處理 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 車牌圖像的改進(jìn)型投影法定位 235
14.4 車牌字符分割技術(shù) 236
14.4.1 常用車牌字符分割算法 236
14.4.2 車牌傾斜問題 238
14.4.3 車牌傾斜度檢測方法 239
14.4.4 車牌傾斜的校正方法 239
14.4.5 車牌邊框和鉚釘?shù)娜コ?239
14.4.6 車牌字符分割 239
14.4.7 基于垂直投影和先驗(yàn)知識(shí)的車牌字符分割 240
14.4.8 粘連車牌字符的分割 241
14.4.9 斷裂車牌字符的合并 241
14.4.10 對車牌字符的切分結(jié)果進(jìn)行確認(rèn) 242
14.5 車牌字符識(shí)別技術(shù) 242
14.5.1 模式識(shí)別 243
14.5.2 字符識(shí)別 244
14.5.3 漢字識(shí)別 254
第15章 OpenCV目標(biāo)檢測 270
15.1 目標(biāo)檢測概述 270
15.2 目標(biāo)檢測的基本概念 272
15.3 視頻序列圖像預(yù)處理 274
15.4 基于深度學(xué)習(xí)的運(yùn)動(dòng)目標(biāo)檢測 275
15.4.1 YOLO運(yùn)動(dòng)目標(biāo)檢測算法 276
15.4.2 YOLOv2概述 280
15.4.3 YOLOv3概述 281
15.4.4 實(shí)戰(zhàn)YOLOv3識(shí)別物體 283
15.4.5 SSD運(yùn)動(dòng)目標(biāo)檢測算法 292
15.4.6 實(shí)戰(zhàn)SSD 296
15.4.7 實(shí)戰(zhàn)人臉檢測 298