不同的文件格式和图像类型 16
1.5.2 执行基本的图像操作 20
小结 38
习题 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 用快速傅里叶变换算法计算DFT 51
2.3 理解卷积 56
2.3.1 为什么需要卷积图像 57
2.3.2 使用SciPy信号模块的convolve2d函数进行卷积 57
2.3.3 使用SciPy中的ndimage.convolve函数进行卷积 61
2.3.4 相关与卷积 62
小结. 66
习题. 66
第3 章卷积和频域滤波 67
3.1 卷积定理和频域高斯模糊 67
3.2 频域滤波 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 图像复原 90
小结 98
习题 98
第4 章图像增强 99
4.1 逐点强度变换—像素变换 100
4.1.1 对数变换 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 基于SciPyndimage进行盒核与高斯核平滑比较 124
4.4 非线性噪声平滑 124
4.4.1 PIL平滑 125
4.4.2 scikit-image平滑(去噪) 127
4.4.3 SciPyndimage平滑 131
小结 132
习题 133
第5 章应用导数方法实现图像增强 134
5.1 图像导数—梯度和拉普拉斯算子 134
5.1.1 导数与梯度 135
5.1.2 拉普拉斯算子 138
5.1.3 噪声对梯度计算的影响 140
5.2 锐化和反锐化掩模 141
5.2.1 使用拉普拉斯滤波器锐化图像 141
5.2.2 反锐化掩模 142
5.3 使用导数和滤波器进行边缘检测..144
5.3.1 用偏导数计算梯度大小 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发现和增强边缘 159
5.4 图像金字塔—融合图像 160
5.4.1 scikit-imagetransformpyramid模块的高斯金字塔 160
5.4.2 scikit-imagetransformpyramid模块的拉普拉斯金字塔 162
5.4.3 构造高斯金字塔 164
5.4.4 仅通过拉普拉斯金字塔重建图像 168
5.4.5 基于金字塔的图像融合 170
小结 172
习题 173
第6 章形态学图像处理 174
6.1 基于scikit-image形态学模块的形态学图像处理 174
6.1.1 对二值图像的操作 175
6.1.2 利用开、闭运算实现指纹清洗 183
6.1.3 灰度级操作 184
6.2 基于scikit-imagefilter.rank模块的形态学图像处理 185
6.2.1 形态学对比度增强 186
6.2.2 使用中值滤波器去噪 187
6.2.3 计算局部熵 188
6.3 基于SciPyndimage.morphology模块的形态学图像处理 189
6.3.1 填充二值对象中的孔洞 189
6.3.2 采用开、闭运算去噪 190
6.3.3 计算形态学Beucher梯度191
6.3.4 计算形态学拉普拉斯 193
小结 194
习题 194
第7 章图像特征提取与描述符 196
7.1 特征检测器与描述符 196
7.2 哈里斯角点检测器 198
7.2.1 scikit-image包 198
7.2.2 哈里斯角点特征在图像匹配中的应用 200
7.3 基于LoG、DoG和DoH的斑点检测器 204
7.3.1 高斯拉普拉斯 204
7.3.2 高斯差分 205
7.3.3 黑塞矩阵 205
7.4 基于方向梯度直方图的特征提取 206
7.4.1 计算HOG描述符的算法206
7.4.2 基于scikit-image计算HOG描述符 207
7.5 尺度不变特征变换 208
7.5.1 计算SIFT描述符的算法.208
7.5.2 opencv和opencv-contrib的SIFT函数 209
7.5.3 基于BRIEF、SIFT和ORB匹配图像的应用 210
7.6 类Haar特征及其在人脸检测中的应用 217
7.6.1 基于scikit-image的类Haar特征描述符 218
7.6.2 基于类Haar特征的人脸检测的应用 219
小结 222
习题 222
第8 章图像分割 223
8.1 图像分割的概念 223
8.2 霍夫变换—检测图像中的圆和线 224
8.3 二值化和Otsu分割 227
8.4 基于边缘/区域的图像分割 229
8.4.1 基于边缘的图像分割 229
8.4.2 基于区域的图像分割 231
8.5 基于菲尔森茨瓦布高效图的分割算法、SLIC算法、快速移位图像分割算法、
紧凑型分水岭算法及使用SimpleITK 的区域生长算法 234
8.5.1 基于菲尔森茨瓦布高效图的分割算法 235
8.5.2 SLIC算法 238
8.5.3 快速移位图像分割算法 240
8.5.4 紧凑型分水岭算法 241
8.5.5 使用SimpleITK的区域生长算法 243
8.6 活动轮廓算法、形态学蛇算法和基于OpenCV的GrabCut图像分割算法 245
8.6.1 活动轮廓算法 245
8.6.2 形态学蛇算法 247
8.6.3 基于OpenCV的GrabCut图像分割算法 250
小结 253
习题 253
第9 章图像处理中的经典机器学习方法 255
9.1 监督学习与无监督学习 255
9.2 无监督机器学习—聚类、PCA和特征脸 256
9.2.1 基于图像分割与颜色量化的k均值聚类算法 256
9.2.2 用于图像分割的谱聚类算法 260
9.2.3 PCA与特征脸 261
9.3 监督机器学习—基于手写数字数据集的图像分类 268
9.3.1 下载MNIST(手写数字)数据集 270
9.3.2 可视化数据集 270
9.3.3 通过训练KNN、高斯贝叶斯和SVM模型对MNIST数据集分类 272
9.4 监督机器学习—目标检测 278
9.4.1 使用类Haar特征的人脸检测和使用AdaBoost的级联分类器—Viola-Jones算法 279
9.4.2 使用基于HOG特征的SVM检测目标 283
小结 287
习题 287
第10 章图像处理中的深度学习—图像分类 289
10.1 图像处理中的深度学习 289
10.1.1 什么是深度学习 290
10.1.2 经典学习与深度学习 290
10.1.3 为何需要深度学习 292
10.2 卷积神经网络 292
10.3 使用TensorFlow或Keras进行图像分类 295
10.3.1 使用TensorFlow进行图像分类 295
10.3.2 使用Keras对密集全连接层进行分类 302
10.3.3 使用基于Keras的卷积神经网络进行分类 306
10.4 应用于图像分类的主流深度卷积神经网络 311
小结 322
习题 322
第11 章图像处理中的深度学习—目标检测等 323
11.1 YOLOv2 323
11.1.1 对图像进行分类与定位以及目标检测 324
11.1.2 使用卷积神经网络检测目标 325
11.1.3 使用YOLOv2 326
11.2 利用DeepLabv3+的深度语义分割 333
11.2.1 语义分割 334
11.2.2 DeepLabv3+ 334
11.3 迁移学习—什么是迁移学习以及什么时候使用迁移学习 337
11.4 使用预训练的Torch模型和cv2实现神经风格迁移 342
11.4.1 了解NST算法 342
11.4.2 使用迁移学习实现NST 342
11.4.3 计算总损失##344
11.5 使用Python和OpenCV实现神经风格迁移 344
小结 347
习题 347
第12 章图像处理中的其他问题 348
12.1 接缝雕刻 348
12.1.1 使用接缝雕刻进行内容感知的图像大小调整 349
12.1.2 使用接缝雕刻移除目标.352
12.2 无缝克隆和泊松图像编辑 354
12.3 图像修复 356
12.4 变分图像处理 358
12.4.1 全变分去噪 359
12.4.2 使用全变分去噪创建平面纹理卡通图像 361
12.5 图像绗缝 362
12.5.1 纹理合成 362
12.5.2 纹理迁移 362
12.6 人脸变形 363
小结 364
习题 364