- 中国铁道出版社
- 9787113304195
- 1-2
- 521441
- 48256900-1
- 16开
- 2023-09
- 计算机类
- 本科
内容简介
本书采用Python语言对数字图像处理进行讲解,相对于MATLAB,Python具有代码简短、可读性高、工具包多等特点,并且更能契合于企业需求,本书对多个经典实验进行实现,有助于学习者进行学习。
本书包含10个章节,第1章对本书中使用python基础知识进行简单的介绍;第2章对数字图像处理的基础知识和操作进行学习;第3章对图像增强理论介绍;第4章学习并实现图像的复原;第5章讲述了常见的压缩方法;第6章学习了形态学图像处理;第7章对常见的图像分割方法进行学习;第8章实现了经典的手写识别案例;第9章对图像分类的实例进行学习;第10章进行目标检测与追踪的相关实验。
本书包含10个章节,第1章对本书中使用python基础知识进行简单的介绍;第2章对数字图像处理的基础知识和操作进行学习;第3章对图像增强理论介绍;第4章学习并实现图像的复原;第5章讲述了常见的压缩方法;第6章学习了形态学图像处理;第7章对常见的图像分割方法进行学习;第8章实现了经典的手写识别案例;第9章对图像分类的实例进行学习;第10章进行目标检测与追踪的相关实验。
目录
第 1章 Python编程基础 1
1.1 Python安装 1
1.1.1 Anaconda安装 1
1.1.2 PyCharm 安装 1
1.2 Python基本数据类型 2
1.2.1 数字(Number) 2
1.2.2 字符串(String) 3
1.2.3 元组(Tuple) 4
1.2.4 列表(List) 4
1.2.5 字典(Dict) 5
1.2.6 集合(Set) 6
1.3 常用库 6
1.3.1 NumPy 6
1.3.2 Matplotlib 7
1.3.3 OpenCV 9
1.4 Python编程 11
1.4.1 控制流语句 11
1.4.2 函数的定义 13
习题 13
第 2章 数字图像处理基础 14
2.1 图像的读取、显示和保存 14
2.1.1 图像的读取 14
2.1.2 图像的显示 15
2.1.3 图像的保存 16
2.2 点运算 17
2.2.1 线性点运算 17
2.2.2 非线性点运算 19
2.3 代数运算和逻辑运算 21
2.3.1 加法运算 21
2.3.2 减法运算 22
2.3.3 乘法运算 22
2.3.4 除法运算 24
2.3.5 逻辑运算 25
2.4 几何运算 26
2.4.1 图像的平移 27
2.4.2 图像的镜像 28
2.4.3 图像的旋转 29
2.4.4 图像的缩放 31
2.5 灰度直方图 33
2.6 图像变换 34
2.6.1 离散傅里叶变换 34
2.6.2 离散余弦变换 35
习题 37
第 3章 图像增强实验 38
3.1 图像增强基础 38
3.1.1 图像空域增强 38
3.1.2 图像频域增强 46
3.2 用到的 Python函数 49
3.2.1 灰度变换函数 49
3.2.2 直方图处理函数 49
3.2.3 空间域滤波函数 50
3.2.4 频域滤波函数 51
3.3 实验举例 52
3.3.1 空域滤波增强 52
3.3.2 直方图增强 58
3.3.3 频域增强 60
习题 62
第 4章 图像复原实验 63
4.1 图像复原基础 63
4.1.1 图像退化模型 63
4.1.2 噪声模型 64
4.1.3 空域滤波复原 70
4.1.4 频域滤波复原 74
4.1.5 自适应滤波复原 76
4.2 用到的 Python函数 77
4.2.1 噪声模型 77
4.2.2 空域滤波 78
4.2.3 频域滤波 79
4.2.4 自适应滤波 79
4.3 实验举例 79
4.3.1 噪声模型 79
4.3.2 空域滤波复原 82
4.3.3 频域滤波复原 91
4.3.4 自适应滤波复原 98
习题 99
第 5章 图像压缩实验 100
5.1 图像压缩基础 100
5.1.1 图像冗余 100
5.1.2 图像压缩技术指标 101
5.1.3 保真度准则 102
5.2 图像压缩编码 102
5.2.1 无损压缩编码 103
5.2.2 有损压缩编码 106
5.2.3 JPEG图像压缩 108
5.2.4 JPEG2000图像压缩 108
5.3 用到的 Python函数 109
5.3.1 无损编码 109
5.3.2 JPEG图像压缩函数 109
5.4 实验举例 110
5.4.1 无损压缩编码 110
5.4.2 JPEG压缩编码 117
习题 121
第 6章 形态学图像处理实验 122
6.1 形态学基础 122
6.1.1 膨胀和腐蚀运算 122
6.1.2 开运算和闭运算 125
6.1.3 击中和击不中变换 126
6.1.4 连通分量的标注 127
6.2 用到的 Python函数 127
6.2.1 结构元素构造函数 127
6.2.2 膨胀与腐蚀运算函数 128
6.2.3 开运算和闭运算函数 128
6.2.4 击中和击不中变换函数 128
6.2.5 连通分量函数 128
6.3 实验举例 129
6.3.1 二值图像形态学处理举例 129
6.3.2 图像的形态学处理举例 131
6.3.3 车牌识别示例 132
习题 136
第 7章 图像分割实验 137
7.1 图像分割基础 137
7.1.1 基础知识 137
7.1.2 点、线和边缘检测 138
7.1.3 阈值分割 142
7.1.4 区域分割 144
7.1.5 分水岭图像分割 146
7.2 使用到的 Python函数 147
7.2.1 点、线和边缘检测 147
7.2.2 阈值分割 147
7.2.3 区域分割 148
7.2.4 分水岭算法 148
7.3 实验举例 149
7.3.1 点检测 149
7.3.2 线检测 150
7.3.3 边缘检测 151
7.3.4 阈值分割 155
7.3.5 区域分割 160
7.3.6 分水岭算法 162
习题 164
第 8章 手写文字识别实验 165
8.1 基于 SVM手写数字识别 165
8.1.1 基础理论 165
8.1.2 流程设计 166
8.1.3 运行环境 167
8.1.4 模块实现 167
8.1.5 性能评价 170
8.2 基于深度学习的手写汉字识别 172
8.2.1 基础理论 172
8.2.2 流程设计 173
8.2.3 运行环境 173
8.2.4 模块实现 174
8.2.5 性能评价 180
习题 182
第 9章 图像分类实验 183
9.1 基于 SVM的图像分类 183
9.1.1 基础理论 183
9.1.2 流程设计 186
9.1.3 运行环境 186
9.1.4 模块实现 187
9.1.5 结果分析 190
9.2 基于 VGG-19的图像分类 191
9.2.1 基础理论 191
9.2.2 流程设计 194
9.2.3 运行环境 194
9.2.4 模块实现 194
9.2.5 结果分析 197
9.3 基于 GoogLeNet的图像分类 198
9.3.1 基础理论 198
9.3.2 流程设计 202
9.3.3 运行环境 202
9.3.4 模块实现 202
9.3.5 结果分析 205
习题 207
第 10章 目标检测实验 208
10.1 基于 HOG+SVM的目标检测 208
10.1.1 HOG 208
10.1.2 流程设计 210
10.1.3 运行环境 210
10.1.4 模块实现 210
10.1.5 结果分析 215
10.2 基于 CNN的目标检测 216
10.2.1 基础理论 216
10.2.2 流程设计 218
10.2.3 运行环境 219
10.2.4 模块实现 219
10.2.5 结果分析 225
习题 225
参考文献 226
1.1 Python安装 1
1.1.1 Anaconda安装 1
1.1.2 PyCharm 安装 1
1.2 Python基本数据类型 2
1.2.1 数字(Number) 2
1.2.2 字符串(String) 3
1.2.3 元组(Tuple) 4
1.2.4 列表(List) 4
1.2.5 字典(Dict) 5
1.2.6 集合(Set) 6
1.3 常用库 6
1.3.1 NumPy 6
1.3.2 Matplotlib 7
1.3.3 OpenCV 9
1.4 Python编程 11
1.4.1 控制流语句 11
1.4.2 函数的定义 13
习题 13
第 2章 数字图像处理基础 14
2.1 图像的读取、显示和保存 14
2.1.1 图像的读取 14
2.1.2 图像的显示 15
2.1.3 图像的保存 16
2.2 点运算 17
2.2.1 线性点运算 17
2.2.2 非线性点运算 19
2.3 代数运算和逻辑运算 21
2.3.1 加法运算 21
2.3.2 减法运算 22
2.3.3 乘法运算 22
2.3.4 除法运算 24
2.3.5 逻辑运算 25
2.4 几何运算 26
2.4.1 图像的平移 27
2.4.2 图像的镜像 28
2.4.3 图像的旋转 29
2.4.4 图像的缩放 31
2.5 灰度直方图 33
2.6 图像变换 34
2.6.1 离散傅里叶变换 34
2.6.2 离散余弦变换 35
习题 37
第 3章 图像增强实验 38
3.1 图像增强基础 38
3.1.1 图像空域增强 38
3.1.2 图像频域增强 46
3.2 用到的 Python函数 49
3.2.1 灰度变换函数 49
3.2.2 直方图处理函数 49
3.2.3 空间域滤波函数 50
3.2.4 频域滤波函数 51
3.3 实验举例 52
3.3.1 空域滤波增强 52
3.3.2 直方图增强 58
3.3.3 频域增强 60
习题 62
第 4章 图像复原实验 63
4.1 图像复原基础 63
4.1.1 图像退化模型 63
4.1.2 噪声模型 64
4.1.3 空域滤波复原 70
4.1.4 频域滤波复原 74
4.1.5 自适应滤波复原 76
4.2 用到的 Python函数 77
4.2.1 噪声模型 77
4.2.2 空域滤波 78
4.2.3 频域滤波 79
4.2.4 自适应滤波 79
4.3 实验举例 79
4.3.1 噪声模型 79
4.3.2 空域滤波复原 82
4.3.3 频域滤波复原 91
4.3.4 自适应滤波复原 98
习题 99
第 5章 图像压缩实验 100
5.1 图像压缩基础 100
5.1.1 图像冗余 100
5.1.2 图像压缩技术指标 101
5.1.3 保真度准则 102
5.2 图像压缩编码 102
5.2.1 无损压缩编码 103
5.2.2 有损压缩编码 106
5.2.3 JPEG图像压缩 108
5.2.4 JPEG2000图像压缩 108
5.3 用到的 Python函数 109
5.3.1 无损编码 109
5.3.2 JPEG图像压缩函数 109
5.4 实验举例 110
5.4.1 无损压缩编码 110
5.4.2 JPEG压缩编码 117
习题 121
第 6章 形态学图像处理实验 122
6.1 形态学基础 122
6.1.1 膨胀和腐蚀运算 122
6.1.2 开运算和闭运算 125
6.1.3 击中和击不中变换 126
6.1.4 连通分量的标注 127
6.2 用到的 Python函数 127
6.2.1 结构元素构造函数 127
6.2.2 膨胀与腐蚀运算函数 128
6.2.3 开运算和闭运算函数 128
6.2.4 击中和击不中变换函数 128
6.2.5 连通分量函数 128
6.3 实验举例 129
6.3.1 二值图像形态学处理举例 129
6.3.2 图像的形态学处理举例 131
6.3.3 车牌识别示例 132
习题 136
第 7章 图像分割实验 137
7.1 图像分割基础 137
7.1.1 基础知识 137
7.1.2 点、线和边缘检测 138
7.1.3 阈值分割 142
7.1.4 区域分割 144
7.1.5 分水岭图像分割 146
7.2 使用到的 Python函数 147
7.2.1 点、线和边缘检测 147
7.2.2 阈值分割 147
7.2.3 区域分割 148
7.2.4 分水岭算法 148
7.3 实验举例 149
7.3.1 点检测 149
7.3.2 线检测 150
7.3.3 边缘检测 151
7.3.4 阈值分割 155
7.3.5 区域分割 160
7.3.6 分水岭算法 162
习题 164
第 8章 手写文字识别实验 165
8.1 基于 SVM手写数字识别 165
8.1.1 基础理论 165
8.1.2 流程设计 166
8.1.3 运行环境 167
8.1.4 模块实现 167
8.1.5 性能评价 170
8.2 基于深度学习的手写汉字识别 172
8.2.1 基础理论 172
8.2.2 流程设计 173
8.2.3 运行环境 173
8.2.4 模块实现 174
8.2.5 性能评价 180
习题 182
第 9章 图像分类实验 183
9.1 基于 SVM的图像分类 183
9.1.1 基础理论 183
9.1.2 流程设计 186
9.1.3 运行环境 186
9.1.4 模块实现 187
9.1.5 结果分析 190
9.2 基于 VGG-19的图像分类 191
9.2.1 基础理论 191
9.2.2 流程设计 194
9.2.3 运行环境 194
9.2.4 模块实现 194
9.2.5 结果分析 197
9.3 基于 GoogLeNet的图像分类 198
9.3.1 基础理论 198
9.3.2 流程设计 202
9.3.3 运行环境 202
9.3.4 模块实现 202
9.3.5 结果分析 205
习题 207
第 10章 目标检测实验 208
10.1 基于 HOG+SVM的目标检测 208
10.1.1 HOG 208
10.1.2 流程设计 210
10.1.3 运行环境 210
10.1.4 模块实现 210
10.1.5 结果分析 215
10.2 基于 CNN的目标检测 216
10.2.1 基础理论 216
10.2.2 流程设计 218
10.2.3 运行环境 219
10.2.4 模块实现 219
10.2.5 结果分析 225
习题 225
参考文献 226