- 机械工业出版社
- 9787111694038
- 1-2
- 435625
- 46257535-8
- 平装
- 16开
- 2021-12
- 229
- 工学
- 计算机科学与技术
- 电子信息工程
- 本科
内容简介
本书主要以Python+OpenCV为主,系统地介绍了Python在数字图像处理的各种应用算法和案例,对数字图像处理的各种算法进行讲解和案例分析,以方面读者后期继续进行人工智能、机器学习、深度学习等方面的学习和研究,不再需要更换编程语言和编程环境。
本书主要以介绍图像处理技术和应用实例为主,每个处理技术后面跟着至少一个应用实例,全书共给出189个应用实例程序,每个实例均已通过作者的调试,能够运行正常,读者可直接引用。
本书主要以介绍图像处理技术和应用实例为主,每个处理技术后面跟着至少一个应用实例,全书共给出189个应用实例程序,每个实例均已通过作者的调试,能够运行正常,读者可直接引用。
目录
前言
第1章 图像处理环境 1
1.1 图像处理简介 1
1.1.1 图像处理的应用领域 1
1.1.2 图像处理的常用方法 3
1.2 Python数字图像处理库 4
1.3 Python集成环境的安装 5
1.3.1 Anaconda集成环境的下载与安装 6
1.3.2 PyCharm集成环境的下载与安装 10
1.4 习题 14
第2章 数字图像的获取和基本运算 15
2.1 图像的基本类型 15
2.1.1 二值图像 15
2.1.2 灰度图像 16
2.1.3 索引图像 16
2.1.4 彩色图像 16
2.2 单幅图像的获取 17
2.2.1 图像的读取 17
2.2.2 图像的显示 18
2.2.3 图像的保存 18
2.2.4 图像的属性 19
2.3 视频图像的获取 19
2.3.1 视频文件的读写 20
2.3.2 实时视频图像的获取 20
2.4 图像的算术运算 22
2.4.1 加法运算 22
2.4.2 减法运算 25
2.4.3 乘法运算 27
2.4.4 除法运算 28
2.5 图像的逻辑运算 30
2.5.1 按位与运算 30
2.5.2 按位或运算 30
2.5.3 按位非运算 32
2.5.4 按位异或运算 33
2.5.5 综合实例 34
2.6 习题 34
第3章 数字图像的几何运算 36
3.1 图像平移 36
3.1.1 显示窗口改变的图像平移 37
3.1.2 显示窗口不变的图像平移 38
3.1.3 仿射变换的应用实例 38
3.2 图像缩放 39
3.3 图像旋转 41
3.4 图像剪切 43
3.5 图像的镜像变换 46
3.6 图像的透视变换 47
3.7 图像的极坐标变换 47
3.7.1 数据点坐标系间的转换 48
3.7.2 图像数据坐标系间的转换 48
3.7.3 视频图像坐标系间的转换 49
3.8 习题 51
第4章 图像空域增强 52
4.1 灰度线性变换 52
4.1.1 用OpenCV做灰度变换与颜色空间变换 52
4.1.2 增加或降低图像亮度 54
4.1.3 增强或减弱图像对比度 55
4.1.4 图像反色变换 56
4.2 非线性变换 58
4.2.1 对数变换 58
4.2.2 伽马变换 59
4.3 图像噪声 60
4.3.1 通过Numpy数组库添加噪声 61
4.3.2 通过skimage库添加噪声 65
4.4 直方图均衡化 67
4.4.1 使用Matplotlib库绘制图像直方图 67
4.4.2 使用OpenCV中的函数绘制直方图 69
4.4.3 自定义函数实现直方图均衡化 70
4.4.4 使用OpenCV函数实现直方图均衡化 71
4.4.5 自适应直方图均衡化 73
4.5 直方图规定化 74
4.5.1 自定义映像函数实现直方图规定化 74
4.5.2 直方图反向投影 78
4.6 习题 79
第5章 图像空域滤波 81
5.1 空域滤波 81
5.2 图像平滑 82
5.2.1 均值滤波 82
5.2.2 方框滤波 83
5.2.3 高斯滤波 84
5.2.4 中值滤波 86
5.2.5 双边滤波 87
5.3 图像锐化 89
5.3.1 拉普拉斯滤波 89
5.3.2 自定义卷积核滤波 91
5.3.3 非锐化掩模和高频提升滤波 93
5.4 习题 94
第6章 图像频域滤波 95
6.1 傅里叶变换 95
6.1.1 Numpy中的傅里叶变换 95
6.1.2 OpenCV中的傅里叶变换 96
6.2 低通滤波 98
6.2.1 理想低通滤波 98
6.2.2 巴特沃斯低通滤波 100
6.2.3 高斯低通滤波 102
6.3 高通滤波 103
6.3.1 理想高通滤波 104
6.3.2 巴特沃斯高通滤波 105
6.3.3 高斯高通滤波 107
6.4 带通和带阻滤波 109
6.4.1 带通滤波 109
6.4.2 带阻滤波 112
6.5 同态滤波 115
6.6 习题 116
第7章 图像退化和复原 117
7.1 图像退化与复原的机理 117
7.2 图像的运动模糊 118
7.3 图像的逆滤波 120
7.4 图像的维纳滤波 122
7.5 图像质量的评价 125
7.6 习题 133
第8章 图像数学形态学 134
8.1 结构元素 134
8.1.1 使用OpenCV生成结构元素 134
8.1.2 使用Numpy生成结构元素 135
8.2 腐蚀 136
8.2.1 OpenCV中的腐蚀函数 136
8.2.2 skimage中的腐蚀函数 137
8.3 膨胀 138
8.3.1 OpenCV中的膨胀函数 138
8.3.2 skimage中的膨胀函数 139
8.3.3 OpenCV形态学处理原型函数 140
8.4 开运算 141
8.4.1 OpenCV中的开运算 141
8.4.2 skimage中的开运算 142
8.5 闭运算 143
8.5.1 OpenCV中的闭运算 143
8.5.2 skimage中的闭运算 144
8.6 高帽运算 145
8.6.1 OpenCV中的高帽运算 145
8.6.2 skimage中的高帽运算 146
8.7 黑帽运算 146
8.7.1 OpenCV中的黑帽运算 146
8.7.2 skimage中的黑帽运算 147
8.8 形态学梯度 148
8.9 灰度形态学 151
8.9.1 灰度图像的腐蚀运算 151
8.9.2 灰度图像的膨胀运算 151
8.9.3 灰度图像的开运算和闭运算 152
8.10 形态学运算检测图像的边缘和角点 153
8.10.1 检测图像边缘 154
8.10.2 检测图像角点 155
8.11 击中与击不中运算 156
8.12 习题 157
第9章 边缘检测 159
9.1 边缘检测简介 159
9.2 Roberts算子 160
9.3 Prewitt算子 162
9.4 Sobel算子 164
9.5 拉普拉斯算子 165
9.6 Canny算子 168
9.7 Scharr算子 171
9.8 Kirsch和Robinson算子 173
9.9 高斯拉普拉斯算子 176
9.10 高斯差分算子 178
9.11 霍夫变换 179
9.11.1 使用霍夫变换检测直线 179
9.11.2 使用霍夫变换检测圆环 182
9.12 图像金字塔 184
9.12.1 高斯金字塔 185
9.12.2 拉普拉斯金字塔 186
9.13 习题 188
第10章 图像分割 189
10.1 图像阈值分割 189
10.1.1 全局阈值分割 190
10.1.2 自适应阈值 191
10.1.3 Otsu’s二值化 192
10.2 图像区域分割 193
10.2.1 区域生长 194
10.2.2 区域分裂合并 196
10.3 图像的边缘分割 198
10.4 直方图分割法 199
10.5 图像连接组件标记算法 201
10.6 分水岭算法 204
10.7 习题 208
第11章 彩色图像的处理 209
11.1 彩色模型 209
11.1.1 RGB彩色模型 209
11.1.2 CMY和CMYK彩色模型 210
11.1.3 HSI彩色模型 211
11.1.4 YIQ彩色模型 213
11.1.5 YCrCb彩色模型 213
11.2 色彩空间类型转换 213
11.2.1 色彩空间类型转换函数 213
11.2.2 RGB色彩空间 214
11.2.3 GRAY色彩空间 214
11.2.4 YCrCb色彩空间 215
11.2.5 HSV色彩空间 216
11.3 彩色图像通道的分离与合并 217
11.3.1 彩色图像通道的分离 218
11.3.2 彩色图像通道的合并 219
11.4 全彩色图像处理 220
11.4.1 彩色变换 220
11.4.2 直方图处理 221
11.4.3 彩色图像的平滑和锐化 222
11.4.4 基于彩色的图像分割 225
11.5 习题 229
第12章 图像特征的提取与描述 230
12.1 图像特征简介 230
12.2 图像轮廓特征 230
12.2.1 图像轮廓的查找和绘制 231
12.2.2 带噪声的轮廓 232
12.2.3 边缘检测后的轮廓 234
12.3 图像的几何特征 234
12.3.1 面积与周长 235
12.3.2 外接矩形 236
12.3.3 最小外接圆和椭圆 237
12.3.4 近似轮廓 239
12.3.5 轮廓凸包 240
12.3.6 拟合直线 241
12.3.7 形状特征 242
12.4 图像特征矩 243
12.4.1 图像特征矩简介 244
12.4.2 Hu矩 246
12.4.3 形状匹配 249
12.5 图像的角点检测 251
12.5.1 Harris角点检测 251
12.5.2 SIFT角点检测 253
12.5.3 SURF特征检测算法 254
12.6 图像匹配 256
12.6.1 ORB特征检测+暴力匹配 256
12.6.2 特征匹配关键点的获取 258
12.6.3 K-最近邻匹配 259
12.6.4 FLANN匹配 260
12.7 综合实例 262
12.7.1 利用SIFT+KNN匹配算法实现图像拼接 262
12.7.2 利用SIFT+暴力匹配算法实现图像拼接 265
12.7.3 搜索匹配的图像 267
12.8 习题 270
第13章 综合应用实例 272
13.1 使用OpenCV进行车牌提取及识别 272
13.1.1 车牌的提取过程 273
13.1.2 车牌的检测与提取 274
13.1.3 字符分割 276
13.1.4 基于Haar特征分类器的车牌检测 278
13.1.5 字符识别 279
13.2 人脸检测 281
13.2.1 图像预处理 281
13.2.2 Haar特征分类器 282
13.2.3 人脸检测程序 282
13.3 答题卡的检测与分割 284
13.3.1 答题卡轮廓检测 284
13.3.2 答题卡不同区域的提取 285
13.3.3 识别填涂答案 287
13.3.4 答题卡用户界面的设计与封装 290
13.4 基于CNN模型的手势识别 293
13.4.1 手势图像数据的采集 294
13.4.2 神经网络模型的创建与训练 296
13.4.3 实时手势数字的识别 298
13.5 基于深度学习的花卉识别系统 299
13.5.1 花卉图像数据的采集 300
13.5.2 数据集的分类 300
13.5.3 MobileNet神经网络模型的设计与测试 302
13.5.4 图形用户界面的设计 305
13.6 口罩佩戴的检测 309
13.6.1 口罩数据集的采集与处理 309
13.6.2 数据集的划分 313
13.6.3 数据集的训练 314
13.6.4 检测是否佩戴口罩 317
13.6.5 视频实时监测口罩佩戴情况 317
参考文献 320
第1章 图像处理环境 1
1.1 图像处理简介 1
1.1.1 图像处理的应用领域 1
1.1.2 图像处理的常用方法 3
1.2 Python数字图像处理库 4
1.3 Python集成环境的安装 5
1.3.1 Anaconda集成环境的下载与安装 6
1.3.2 PyCharm集成环境的下载与安装 10
1.4 习题 14
第2章 数字图像的获取和基本运算 15
2.1 图像的基本类型 15
2.1.1 二值图像 15
2.1.2 灰度图像 16
2.1.3 索引图像 16
2.1.4 彩色图像 16
2.2 单幅图像的获取 17
2.2.1 图像的读取 17
2.2.2 图像的显示 18
2.2.3 图像的保存 18
2.2.4 图像的属性 19
2.3 视频图像的获取 19
2.3.1 视频文件的读写 20
2.3.2 实时视频图像的获取 20
2.4 图像的算术运算 22
2.4.1 加法运算 22
2.4.2 减法运算 25
2.4.3 乘法运算 27
2.4.4 除法运算 28
2.5 图像的逻辑运算 30
2.5.1 按位与运算 30
2.5.2 按位或运算 30
2.5.3 按位非运算 32
2.5.4 按位异或运算 33
2.5.5 综合实例 34
2.6 习题 34
第3章 数字图像的几何运算 36
3.1 图像平移 36
3.1.1 显示窗口改变的图像平移 37
3.1.2 显示窗口不变的图像平移 38
3.1.3 仿射变换的应用实例 38
3.2 图像缩放 39
3.3 图像旋转 41
3.4 图像剪切 43
3.5 图像的镜像变换 46
3.6 图像的透视变换 47
3.7 图像的极坐标变换 47
3.7.1 数据点坐标系间的转换 48
3.7.2 图像数据坐标系间的转换 48
3.7.3 视频图像坐标系间的转换 49
3.8 习题 51
第4章 图像空域增强 52
4.1 灰度线性变换 52
4.1.1 用OpenCV做灰度变换与颜色空间变换 52
4.1.2 增加或降低图像亮度 54
4.1.3 增强或减弱图像对比度 55
4.1.4 图像反色变换 56
4.2 非线性变换 58
4.2.1 对数变换 58
4.2.2 伽马变换 59
4.3 图像噪声 60
4.3.1 通过Numpy数组库添加噪声 61
4.3.2 通过skimage库添加噪声 65
4.4 直方图均衡化 67
4.4.1 使用Matplotlib库绘制图像直方图 67
4.4.2 使用OpenCV中的函数绘制直方图 69
4.4.3 自定义函数实现直方图均衡化 70
4.4.4 使用OpenCV函数实现直方图均衡化 71
4.4.5 自适应直方图均衡化 73
4.5 直方图规定化 74
4.5.1 自定义映像函数实现直方图规定化 74
4.5.2 直方图反向投影 78
4.6 习题 79
第5章 图像空域滤波 81
5.1 空域滤波 81
5.2 图像平滑 82
5.2.1 均值滤波 82
5.2.2 方框滤波 83
5.2.3 高斯滤波 84
5.2.4 中值滤波 86
5.2.5 双边滤波 87
5.3 图像锐化 89
5.3.1 拉普拉斯滤波 89
5.3.2 自定义卷积核滤波 91
5.3.3 非锐化掩模和高频提升滤波 93
5.4 习题 94
第6章 图像频域滤波 95
6.1 傅里叶变换 95
6.1.1 Numpy中的傅里叶变换 95
6.1.2 OpenCV中的傅里叶变换 96
6.2 低通滤波 98
6.2.1 理想低通滤波 98
6.2.2 巴特沃斯低通滤波 100
6.2.3 高斯低通滤波 102
6.3 高通滤波 103
6.3.1 理想高通滤波 104
6.3.2 巴特沃斯高通滤波 105
6.3.3 高斯高通滤波 107
6.4 带通和带阻滤波 109
6.4.1 带通滤波 109
6.4.2 带阻滤波 112
6.5 同态滤波 115
6.6 习题 116
第7章 图像退化和复原 117
7.1 图像退化与复原的机理 117
7.2 图像的运动模糊 118
7.3 图像的逆滤波 120
7.4 图像的维纳滤波 122
7.5 图像质量的评价 125
7.6 习题 133
第8章 图像数学形态学 134
8.1 结构元素 134
8.1.1 使用OpenCV生成结构元素 134
8.1.2 使用Numpy生成结构元素 135
8.2 腐蚀 136
8.2.1 OpenCV中的腐蚀函数 136
8.2.2 skimage中的腐蚀函数 137
8.3 膨胀 138
8.3.1 OpenCV中的膨胀函数 138
8.3.2 skimage中的膨胀函数 139
8.3.3 OpenCV形态学处理原型函数 140
8.4 开运算 141
8.4.1 OpenCV中的开运算 141
8.4.2 skimage中的开运算 142
8.5 闭运算 143
8.5.1 OpenCV中的闭运算 143
8.5.2 skimage中的闭运算 144
8.6 高帽运算 145
8.6.1 OpenCV中的高帽运算 145
8.6.2 skimage中的高帽运算 146
8.7 黑帽运算 146
8.7.1 OpenCV中的黑帽运算 146
8.7.2 skimage中的黑帽运算 147
8.8 形态学梯度 148
8.9 灰度形态学 151
8.9.1 灰度图像的腐蚀运算 151
8.9.2 灰度图像的膨胀运算 151
8.9.3 灰度图像的开运算和闭运算 152
8.10 形态学运算检测图像的边缘和角点 153
8.10.1 检测图像边缘 154
8.10.2 检测图像角点 155
8.11 击中与击不中运算 156
8.12 习题 157
第9章 边缘检测 159
9.1 边缘检测简介 159
9.2 Roberts算子 160
9.3 Prewitt算子 162
9.4 Sobel算子 164
9.5 拉普拉斯算子 165
9.6 Canny算子 168
9.7 Scharr算子 171
9.8 Kirsch和Robinson算子 173
9.9 高斯拉普拉斯算子 176
9.10 高斯差分算子 178
9.11 霍夫变换 179
9.11.1 使用霍夫变换检测直线 179
9.11.2 使用霍夫变换检测圆环 182
9.12 图像金字塔 184
9.12.1 高斯金字塔 185
9.12.2 拉普拉斯金字塔 186
9.13 习题 188
第10章 图像分割 189
10.1 图像阈值分割 189
10.1.1 全局阈值分割 190
10.1.2 自适应阈值 191
10.1.3 Otsu’s二值化 192
10.2 图像区域分割 193
10.2.1 区域生长 194
10.2.2 区域分裂合并 196
10.3 图像的边缘分割 198
10.4 直方图分割法 199
10.5 图像连接组件标记算法 201
10.6 分水岭算法 204
10.7 习题 208
第11章 彩色图像的处理 209
11.1 彩色模型 209
11.1.1 RGB彩色模型 209
11.1.2 CMY和CMYK彩色模型 210
11.1.3 HSI彩色模型 211
11.1.4 YIQ彩色模型 213
11.1.5 YCrCb彩色模型 213
11.2 色彩空间类型转换 213
11.2.1 色彩空间类型转换函数 213
11.2.2 RGB色彩空间 214
11.2.3 GRAY色彩空间 214
11.2.4 YCrCb色彩空间 215
11.2.5 HSV色彩空间 216
11.3 彩色图像通道的分离与合并 217
11.3.1 彩色图像通道的分离 218
11.3.2 彩色图像通道的合并 219
11.4 全彩色图像处理 220
11.4.1 彩色变换 220
11.4.2 直方图处理 221
11.4.3 彩色图像的平滑和锐化 222
11.4.4 基于彩色的图像分割 225
11.5 习题 229
第12章 图像特征的提取与描述 230
12.1 图像特征简介 230
12.2 图像轮廓特征 230
12.2.1 图像轮廓的查找和绘制 231
12.2.2 带噪声的轮廓 232
12.2.3 边缘检测后的轮廓 234
12.3 图像的几何特征 234
12.3.1 面积与周长 235
12.3.2 外接矩形 236
12.3.3 最小外接圆和椭圆 237
12.3.4 近似轮廓 239
12.3.5 轮廓凸包 240
12.3.6 拟合直线 241
12.3.7 形状特征 242
12.4 图像特征矩 243
12.4.1 图像特征矩简介 244
12.4.2 Hu矩 246
12.4.3 形状匹配 249
12.5 图像的角点检测 251
12.5.1 Harris角点检测 251
12.5.2 SIFT角点检测 253
12.5.3 SURF特征检测算法 254
12.6 图像匹配 256
12.6.1 ORB特征检测+暴力匹配 256
12.6.2 特征匹配关键点的获取 258
12.6.3 K-最近邻匹配 259
12.6.4 FLANN匹配 260
12.7 综合实例 262
12.7.1 利用SIFT+KNN匹配算法实现图像拼接 262
12.7.2 利用SIFT+暴力匹配算法实现图像拼接 265
12.7.3 搜索匹配的图像 267
12.8 习题 270
第13章 综合应用实例 272
13.1 使用OpenCV进行车牌提取及识别 272
13.1.1 车牌的提取过程 273
13.1.2 车牌的检测与提取 274
13.1.3 字符分割 276
13.1.4 基于Haar特征分类器的车牌检测 278
13.1.5 字符识别 279
13.2 人脸检测 281
13.2.1 图像预处理 281
13.2.2 Haar特征分类器 282
13.2.3 人脸检测程序 282
13.3 答题卡的检测与分割 284
13.3.1 答题卡轮廓检测 284
13.3.2 答题卡不同区域的提取 285
13.3.3 识别填涂答案 287
13.3.4 答题卡用户界面的设计与封装 290
13.4 基于CNN模型的手势识别 293
13.4.1 手势图像数据的采集 294
13.4.2 神经网络模型的创建与训练 296
13.4.3 实时手势数字的识别 298
13.5 基于深度学习的花卉识别系统 299
13.5.1 花卉图像数据的采集 300
13.5.2 数据集的分类 300
13.5.3 MobileNet神经网络模型的设计与测试 302
13.5.4 图形用户界面的设计 305
13.6 口罩佩戴的检测 309
13.6.1 口罩数据集的采集与处理 309
13.6.2 数据集的划分 313
13.6.3 数据集的训练 314
13.6.4 检测是否佩戴口罩 317
13.6.5 视频实时监测口罩佩戴情况 317
参考文献 320