本書介紹如何用流行的Python 圖像處理庫、機(jī)器學(xué)習(xí)庫和深度學(xué)習(xí)庫解決圖像處理問題。先介紹經(jīng)典的圖像處理技術(shù),然后探索圖像處理算法的演變歷程,始終緊扣圖像處理以及計(jì)算機(jī)視覺與深度學(xué)習(xí)方面的**進(jìn)展。全書共12 章,涵蓋圖像處理入門基礎(chǔ)知識、應(yīng)用導(dǎo)數(shù)方法實(shí)現(xiàn)圖像增強(qiáng)、形態(tài)學(xué)圖像處理、圖像特征提取與描述符、圖像分割,以及圖像處理中的經(jīng)典機(jī)器學(xué)習(xí)方法等內(nèi)容。
本書適合Python 工程師和相關(guān)研究人員閱讀,也適合對計(jì)算機(jī)視覺、圖像處理、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)感興趣的軟件工程師參考。
1. 圖像處理、計(jì)算機(jī)視覺與深度學(xué)習(xí)的**進(jìn)展。
2. 實(shí)戰(zhàn)性較強(qiáng),涵蓋圖像修復(fù)、梯度融合、變分去噪、接縫雕刻、圖像絎縫和人臉變形等新應(yīng)用。
3. 用流行的Python 圖像處理庫、機(jī)器學(xué)習(xí)庫和深度學(xué)習(xí)庫解決圖像處理問題。
桑迪潘.戴伊(Sandipan Dey)是一位興趣廣泛的數(shù)據(jù)科學(xué)家,主要研究機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、圖像處理和計(jì)算機(jī)視覺,曾在推薦系統(tǒng)、行業(yè)動態(tài)預(yù)測模型、傳感器定位模型、情感分析和設(shè)備預(yù)測等眾多數(shù)據(jù)科學(xué)領(lǐng)域工作過。
桑迪潘.戴伊擁有美國馬里蘭大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位,在IEEE 數(shù)據(jù)挖掘會議和期刊上發(fā)表了數(shù)篇學(xué)術(shù)論文,并在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、圖像處理及相關(guān)課程/專業(yè)等方面獲得了100 多個慕課(mooc)學(xué)習(xí)認(rèn)證。他經(jīng)常在博客空(sandipanweb)撰寫博客,是機(jī)器學(xué)習(xí)教育愛好者。
第1 章 圖像處理入門 1
1.1 什么是圖像處理及圖像處理的應(yīng)用 2
1.1.1 什么是圖像以及圖像是如何存儲的 2
1.1.2 什么是圖像處理 4
1.1.3 圖像處理的應(yīng)用 4
1.2 圖像處理流程 4
1.3 在Python 中安裝不同的圖像處理庫 6
1.3.1 安裝pip 6
1.3.2 在Python 中安裝圖像處理庫 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 信號模塊的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 對數(shù)變換 101
4.1.2 冪律變換 103
4.1.3 對比度拉伸 104
4.1.4 二值化 108
4.2 直方圖處理—直方圖均衡化和直方圖匹配 112
4.2.1 基于scikit-image 的對比度拉伸和直方圖均衡化 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 噪聲對梯度計(jì)算的影響 140
5.2 銳化和反銳化掩!141
5.2.1 使用拉普拉斯濾波器銳化圖像 141
5.2.2 反銳化掩!142
5.3 使用導(dǎo)數(shù)和濾波器進(jìn)行邊緣檢測..144
5.3.1 用偏導(dǎo)數(shù)計(jì)算梯度大小 145
5.3.2 scikit-image 的Sobel 邊緣檢測器 146
5.3.3 scikit-image 的不同邊緣檢測器—Prewitt、Roberts、Sobel、Scharr 和
Laplace 148
5.3.4 scikit-image 的Canny 邊緣檢測器 151
5.3.5 LoG 濾波器和DoG 濾波器 152
5.3.6 基于LoG 濾波器的邊緣檢測 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 僅通過拉普拉斯金字塔重建圖像 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 對二值圖像的操作 175
6.1.2 利用開、閉運(yùn)算實(shí)現(xiàn)指紋清洗 183
6.1.3 灰度級操作 184
6.2 基于scikit-image filter.rank 模塊的形態(tài)學(xué)圖像處理 185
6.2.1 形態(tài)學(xué)對比度增強(qiáng) 186
6.2.2 使用中值濾波器去噪 187
6.2.3 計(jì)算局部熵 188
6.3 基于SciPy ndimage.morphology 模塊的形態(tài)學(xué)圖像處理 189
6.3.1 填充二值對象中的孔洞 189
6.3.2 采用開、閉運(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 特征檢測器與描述符 196
7.2 哈里斯角點(diǎn)檢測器 198
7.2.1 scikit-image 包 198
7.2.2 哈里斯角點(diǎn)特征在圖像匹配中的應(yīng)用 200
7.3 基于LoG、DoG 和DoH 的斑點(diǎn)檢測器 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 特征及其在人臉檢測中的應(yīng)用 217
7.6.1 基于scikit-image 的類Haar 特征描述符 218
7.6.2 基于類Haar 特征的人臉檢測的應(yīng)用 219
小結(jié) 222
習(xí)題 222
第8 章 圖像分割 223
8.1 圖像分割的概念 223
8.2 霍夫變換—檢測圖像中的圓和線 224
8.3 二值化和Otsu 分割 227
8.4 基于邊緣/區(qū)域的圖像分割 229
8.4.1 基于邊緣的圖像分割 229
8.4.2 基于區(qū)域的圖像分割 231
8.5 基于菲爾森茨瓦布高效圖的分割算法、SLIC 算法、快速移位圖像分割算法、
緊湊型分水嶺算法及使用SimpleITK 的區(qū)域生長算法 234
8.5.1 基于菲爾森茨瓦布高效圖的分割算法 235
8.5.2 SLIC 算法 238
8.5.3 快速移位圖像分割算法 240
8.5.4 緊湊型分水嶺算法 241
8.5.5 使用SimpleITK 的區(qū)域生長算法 243
8.6 活動輪廓算法、形態(tài)學(xué)蛇算法和基于OpenCV 的GrabCut 圖像分割算法 245
8.6.1 活動輪廓算法 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í)與無監(jiān)督學(xué)習(xí) 255
9.2 無監(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í)—基于手寫數(shù)字?jǐn)?shù)據(jù)集的圖像分類 268
9.3.1 下載MNIST(手寫數(shù)字)數(shù)據(jù)集 270
9.3.2 可視化數(shù)據(jù)集 270
9.3.3 通過訓(xùn)練KNN、高斯貝葉斯和SVM 模型對MNIST 數(shù)據(jù)集分類 272
9.4 監(jiān)督機(jī)器學(xué)習(xí)—目標(biāo)檢測 278
9.4.1 使用類Haar 特征的人臉檢測和使用AdaBoost 的級聯(lián)分類器—Viola-Jones 算法 279
9.4.2 使用基于HOG 特征的SVM 檢測目標(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 對密集全連接層進(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)檢測等 323
11.1 YOLO v2 323
11.1.1 對圖像進(jìn)行分類與定位以及目標(biāo)檢測 324
11.1.2 使用卷積神經(jīng)網(wǎng)絡(luò)檢測目標(biāo) 325
11.1.3 使用YOLO v2 326
11.2 利用DeepLab v3+的深度語義分割 333
11.2.1 語義分割 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 章 圖像處理中的其他問題 348
12.1 接縫雕刻 348
12.1.1 使用接縫雕刻進(jìn)行內(nèi)容感知的圖像大小調(diào)整 349
12.1.2 使用接縫雕刻移除目標(biāo).352
12.2 無縫克隆和泊松圖像編輯 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