本書(shū)介紹如何用流行的Python 圖像處理庫(kù)、機(jī)器學(xué)習(xí)庫(kù)和深度學(xué)習(xí)庫(kù)解決圖像處理問(wèn)題。先介紹經(jīng)典的圖像處理技術(shù),然后探索圖像處理算法的演變歷程,始終緊扣圖像處理以及計(jì)算機(jī)視覺(jué)與深度學(xué)習(xí)方面的**進(jìn)展。全書(shū)共12 章,涵蓋圖像處理入門基礎(chǔ)知識(shí)、應(yīng)用導(dǎo)數(shù)方法實(shí)現(xiàn)圖像增強(qiáng)、形態(tài)學(xué)圖像處理、圖像特征提取與描述符、圖像分割,以及圖像處理中的經(jīng)典機(jī)器學(xué)習(xí)方法等內(nèi)容。
本書(shū)適合Python 工程師和相關(guān)研究人員閱讀,也適合對(duì)計(jì)算機(jī)視覺(jué)、圖像處理、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)感興趣的軟件工程師參考。
1. 圖像處理、計(jì)算機(jī)視覺(jué)與深度學(xué)習(xí)的**進(jìn)展。
2. 實(shí)戰(zhàn)性較強(qiáng),涵蓋圖像修復(fù)、梯度融合、變分去噪、接縫雕刻、圖像絎縫和人臉變形等新應(yīng)用。
3. 用流行的Python 圖像處理庫(kù)、機(jī)器學(xué)習(xí)庫(kù)和深度學(xué)習(xí)庫(kù)解決圖像處理問(wèn)題。
桑迪潘.戴伊(Sandipan Dey)是一位興趣廣泛的數(shù)據(jù)科學(xué)家,主要研究機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、圖像處理和計(jì)算機(jī)視覺(jué),曾在推薦系統(tǒng)、行業(yè)動(dòng)態(tài)預(yù)測(cè)模型、傳感器定位模型、情感分析和設(shè)備預(yù)測(cè)等眾多數(shù)據(jù)科學(xué)領(lǐng)域工作過(guò)。
桑迪潘.戴伊擁有美國(guó)馬里蘭大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位,在IEEE 數(shù)據(jù)挖掘會(huì)議和期刊上發(fā)表了數(shù)篇學(xué)術(shù)論文,并在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、圖像處理及相關(guān)課程/專業(yè)等方面獲得了100 多個(gè)慕課(mooc)學(xué)習(xí)認(rèn)證。他經(jīng)常在博客空(sandipanweb)撰寫(xiě)博客,是機(jī)器學(xué)習(xí)教育愛(ài)好者。
第1 章 圖像處理入門 1
1.1 什么是圖像處理及圖像處理的應(yīng)用 2
1.1.1 什么是圖像以及圖像是如何存儲(chǔ)的 2
1.1.2 什么是圖像處理 4
1.1.3 圖像處理的應(yīng)用 4
1.2 圖像處理流程 4
1.3 在Python 中安裝不同的圖像處理庫(kù) 6
1.3.1 安裝pip 6
1.3.2 在Python 中安裝圖像處理庫(kù) 6
1.3.3 安裝Anaconda 發(fā)行版 7
1.3.4 安裝Jupyter 筆記本 7
1.4 使用Python 進(jìn)行圖像輸入/輸出和顯示 8
1.4.1 使用PIL 讀取、保存和顯示圖像 8
1.4.2 使用matplotlib 讀取、保存和顯示圖像 10
1.4.3 使用scikit-image 讀取、保存和顯示圖像 12
1.4.4 使用SciPy 的misc 模塊讀取、保存和顯示圖像 14
1.5 處理不同的文件格式和圖像類型,并執(zhí)行基本的圖像操作 15
1.5.1 處理不同的文件格式和圖像類型 16
1.5.2 執(zhí)行基本的圖像操作 20
小結(jié) 38
習(xí)題 39
拓展閱讀 40
第2 章 采樣、傅里葉變換與卷積 41
2.1 圖像形成—采樣和量化 42
2.1.1 采樣 42
2.1.2 量化 48
2.2 離散傅里葉變換 51
2.2.1 為什么需要DFT 51
2.2.2 用快速傅里葉變換算法計(jì)算DFT 51
2.3 理解卷積 56
2.3.1 為什么需要卷積圖像 57
2.3.2 使用SciPy 信號(hào)模塊的convolve2d 函數(shù)進(jìn)行卷積 57
2.3.3 使用SciPy 中的ndimage.convolve 函數(shù)進(jìn)行卷積 61
2.3.4 相關(guān)與卷積 62
小結(jié). 66
習(xí)題. 66
第3 章 卷積和頻域?yàn)V波 67
3.1 卷積定理和頻域高斯模糊 67
3.2 頻域?yàn)V波 75
3.2.1 什么是濾波器 75
3.2.2 高通濾波器 76
3.2.3 低通濾波器 81
3.2.4 DoG 帶通濾波器 87
3.2.5 帶阻(陷波)濾波器 88
3.2.6 圖像復(fù)原 90
小結(jié) 98
習(xí)題 98
第4 章 圖像增強(qiáng) 99
4.1 逐點(diǎn)強(qiáng)度變換—像素變換 100
4.1.1 對(duì)數(shù)變換 101
4.1.2 冪律變換 103
4.1.3 對(duì)比度拉伸 104
4.1.4 二值化 108
4.2 直方圖處理—直方圖均衡化和直方圖匹配 112
4.2.1 基于scikit-image 的對(duì)比度拉伸和直方圖均衡化 113
4.2.2 直方圖匹配 117
4.3 線性噪聲平滑 120
4.3.1 PIL 平滑 120
4.3.2 基于SciPy ndimage 進(jìn)行盒核與高斯核平滑比較 124
4.4 非線性噪聲平滑 124
4.4.1 PIL 平滑 125
4.4.2 scikit-image 平滑(去噪) 127
4.4.3 SciPy ndimage 平滑 131
小結(jié) 132
習(xí)題 133
第5 章 應(yīng)用導(dǎo)數(shù)方法實(shí)現(xiàn)圖像增強(qiáng) 134
5.1 圖像導(dǎo)數(shù)—梯度和拉普拉斯算子 134
5.1.1 導(dǎo)數(shù)與梯度 135
5.1.2 拉普拉斯算子 138
5.1.3 噪聲對(duì)梯度計(jì)算的影響 140
5.2 銳化和反銳化掩!141
5.2.1 使用拉普拉斯濾波器銳化圖像 141
5.2.2 反銳化掩!142
5.3 使用導(dǎo)數(shù)和濾波器進(jìn)行邊緣檢測(cè)..144
5.3.1 用偏導(dǎo)數(shù)計(jì)算梯度大小 145
5.3.2 scikit-image 的Sobel 邊緣檢測(cè)器 146
5.3.3 scikit-image 的不同邊緣檢測(cè)器—Prewitt、Roberts、Sobel、Scharr 和
Laplace 148
5.3.4 scikit-image 的Canny 邊緣檢測(cè)器 151
5.3.5 LoG 濾波器和DoG 濾波器 152
5.3.6 基于LoG 濾波器的邊緣檢測(cè) 157
5.3.7 基于PIL 發(fā)現(xiàn)和增強(qiáng)邊緣 159
5.4 圖像金字塔—融合圖像 160
5.4.1 scikit-image transform pyramid 模塊的高斯金字塔 160
5.4.2 scikit-image transform pyramid 模塊的拉普拉斯金字塔 162
5.4.3 構(gòu)造高斯金字塔 164
5.4.4 僅通過(guò)拉普拉斯金字塔重建圖像 168
5.4.5 基于金字塔的圖像融合 170
小結(jié) 172
習(xí)題 173
第6 章 形態(tài)學(xué)圖像處理 174
6.1 基于scikit-image 形態(tài)學(xué)模塊的形態(tài)學(xué)圖像處理 174
6.1.1 對(duì)二值圖像的操作 175
6.1.2 利用開(kāi)、閉運(yùn)算實(shí)現(xiàn)指紋清洗 183
6.1.3 灰度級(jí)操作 184
6.2 基于scikit-image filter.rank 模塊的形態(tài)學(xué)圖像處理 185
6.2.1 形態(tài)學(xué)對(duì)比度增強(qiáng) 186
6.2.2 使用中值濾波器去噪 187
6.2.3 計(jì)算局部熵 188
6.3 基于SciPy ndimage.morphology 模塊的形態(tài)學(xué)圖像處理 189
6.3.1 填充二值對(duì)象中的孔洞 189
6.3.2 采用開(kāi)、閉運(yùn)算去噪 190
6.3.3 計(jì)算形態(tài)學(xué)Beucher 梯度191
6.3.4 計(jì)算形態(tài)學(xué)拉普拉斯 193
小結(jié) 194
習(xí)題 194
第7 章 圖像特征提取與描述符 196
7.1 特征檢測(cè)器與描述符 196
7.2 哈里斯角點(diǎn)檢測(cè)器 198
7.2.1 scikit-image 包 198
7.2.2 哈里斯角點(diǎn)特征在圖像匹配中的應(yīng)用 200
7.3 基于LoG、DoG 和DoH 的斑點(diǎn)檢測(cè)器 204
7.3.1 高斯拉普拉斯 204
7.3.2 高斯差分 205
7.3.3 黑塞矩陣 205
7.4 基于方向梯度直方圖的特征提取 206
7.4.1 計(jì)算HOG 描述符的算法206
7.4.2 基于scikit-image 計(jì)算HOG 描述符 207
7.5 尺度不變特征變換 208
7.5.1 計(jì)算SIFT 描述符的算法.208
7.5.2 opencv 和opencv-contrib 的SIFT 函數(shù) 209
7.5.3 基于BRIEF、SIFT 和ORB 匹配圖像的應(yīng)用 210
7.6 類Haar 特征及其在人臉檢測(cè)中的應(yīng)用 217
7.6.1 基于scikit-image 的類Haar 特征描述符 218
7.6.2 基于類Haar 特征的人臉檢測(cè)的應(yīng)用 219
小結(jié) 222
習(xí)題 222
第8 章 圖像分割 223
8.1 圖像分割的概念 223
8.2 霍夫變換—檢測(cè)圖像中的圓和線 224
8.3 二值化和Otsu 分割 227
8.4 基于邊緣/區(qū)域的圖像分割 229
8.4.1 基于邊緣的圖像分割 229
8.4.2 基于區(qū)域的圖像分割 231
8.5 基于菲爾森茨瓦布高效圖的分割算法、SLIC 算法、快速移位圖像分割算法、
緊湊型分水嶺算法及使用SimpleITK 的區(qū)域生長(zhǎng)算法 234
8.5.1 基于菲爾森茨瓦布高效圖的分割算法 235
8.5.2 SLIC 算法 238
8.5.3 快速移位圖像分割算法 240
8.5.4 緊湊型分水嶺算法 241
8.5.5 使用SimpleITK 的區(qū)域生長(zhǎng)算法 243
8.6 活動(dòng)輪廓算法、形態(tài)學(xué)蛇算法和基于OpenCV 的GrabCut 圖像分割算法 245
8.6.1 活動(dòng)輪廓算法 245
8.6.2 形態(tài)學(xué)蛇算法 247
8.6.3 基于OpenCV 的GrabCut 圖像分割算法 250
小結(jié) 253
習(xí)題 253
第9 章 圖像處理中的經(jīng)典機(jī)器學(xué)習(xí)方法 255
9.1 監(jiān)督學(xué)習(xí)與無(wú)監(jiān)督學(xué)習(xí) 255
9.2 無(wú)監(jiān)督機(jī)器學(xué)習(xí)—聚類、PCA 和特征臉 256
9.2.1 基于圖像分割與顏色量化的k 均值聚類算法 256
9.2.2 用于圖像分割的譜聚類算法 260
9.2.3 PCA 與特征臉 261
9.3 監(jiān)督機(jī)器學(xué)習(xí)—基于手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集的圖像分類 268
9.3.1 下載MNIST(手寫(xiě)數(shù)字)數(shù)據(jù)集 270
9.3.2 可視化數(shù)據(jù)集 270
9.3.3 通過(guò)訓(xùn)練KNN、高斯貝葉斯和SVM 模型對(duì)MNIST 數(shù)據(jù)集分類 272
9.4 監(jiān)督機(jī)器學(xué)習(xí)—目標(biāo)檢測(cè) 278
9.4.1 使用類Haar 特征的人臉檢測(cè)和使用AdaBoost 的級(jí)聯(lián)分類器—Viola-Jones 算法 279
9.4.2 使用基于HOG 特征的SVM 檢測(cè)目標(biāo) 283
小結(jié) 287
習(xí)題 287
第10 章 圖像處理中的深度學(xué)習(xí)—圖像分類 289
10.1 圖像處理中的深度學(xué)習(xí) 289
10.1.1 什么是深度學(xué)習(xí) 290
10.1.2 經(jīng)典學(xué)習(xí)與深度學(xué)習(xí) 290
10.1.3 為何需要深度學(xué)習(xí) 292
10.2 卷積神經(jīng)網(wǎng)絡(luò) 292
10.3 使用TensorFlow 或Keras 進(jìn)行圖像分類 295
10.3.1 使用TensorFlow 進(jìn)行圖像分類 295
10.3.2 使用Keras 對(duì)密集全連接層進(jìn)行分類 302
10.3.3 使用基于Keras 的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類 306
10.4 應(yīng)用于圖像分類的主流深度卷積神經(jīng)網(wǎng)絡(luò) 311
小結(jié) 322
習(xí)題 322
第11 章 圖像處理中的深度學(xué)習(xí)—目標(biāo)檢測(cè)等 323
11.1 YOLO v2 323
11.1.1 對(duì)圖像進(jìn)行分類與定位以及目標(biāo)檢測(cè) 324
11.1.2 使用卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)目標(biāo) 325
11.1.3 使用YOLO v2 326
11.2 利用DeepLab v3+的深度語(yǔ)義分割 333
11.2.1 語(yǔ)義分割 334
11.2.2 DeepLab v3+ 334
11.3 遷移學(xué)習(xí)—什么是遷移學(xué)習(xí)以及什么時(shí)候使用遷移學(xué)習(xí) 337
11.4 使用預(yù)訓(xùn)練的Torch 模型和cv2 實(shí)現(xiàn)神經(jīng)風(fēng)格遷移 342
11.4.1 了解NST 算法 342
11.4.2 使用遷移學(xué)習(xí)實(shí)現(xiàn)NST 342
11.4.3 計(jì)算總損失##344
11.5 使用Python 和OpenCV 實(shí)現(xiàn)神經(jīng)風(fēng)格遷移 344
小結(jié) 347
習(xí)題 347
第12 章 圖像處理中的其他問(wèn)題 348
12.1 接縫雕刻 348
12.1.1 使用接縫雕刻進(jìn)行內(nèi)容感知的圖像大小調(diào)整 349
12.1.2 使用接縫雕刻移除目標(biāo).352
12.2 無(wú)縫克隆和泊松圖像編輯 354
12.3 圖像修復(fù) 356
12.4 變分圖像處理 358
12.4.1 全變分去噪 359
12.4.2 使用全變分去噪創(chuàng)建平面紋理卡通圖像 361
12.5 圖像絎縫 362
12.5.1 紋理合成 362
12.5.2 紋理遷移 362
12.6 人臉變形 363
小結(jié) 364
習(xí)題 364