前言
第1章 智能图像处理入门 1
1.1 智能图像处理概述 1
1.2 环境搭建 2
1.2.1 安装Python 2
1.2.2 安装PyCharm 8
1.2.3 PyCharm的初始化 12
1.2.4 OpenCV及常用库的配置 15
1.3 思考与练习 17
第2章 Python基础 18
2.1 数据类型 18
2.1.1 数值类型 18
2.1.2 字符串类型 20
2.1.3 布尔类型 20
2.2 变量与常量 21
2.3 运算符 21
2.3.1 运算符简介 21
2.3.2 运算符优先级 21
2.4 选择与循环 22
2.4.1 if语句 22
2.4.2 while循环 25
2.4.3 for循环 27
2.4.4 break和continue语句 29
2.5 列表与元组 31
2.5.1 创建 31
2.5.2 查询 32
2.5.3 修改 33
2.5.4 删除 34
2.6 字典 35
2.6.1 字典的创建 35
2.6.2 字典的常规操作 36
2.6.3 字典的遍历 37
2.7 函数 38
2.7.1 函数的定义与调用 38
2.7.2 参数传递 40
2.8 面向对象编程 42
2.8.1 类与对象 42
2.8.2 继承与多态 44
2.9 思考与练习 46
第3章 图像处理基础 48
3.1 图像的基本表示方法 48
3.1.1 二值图像 48
3.1.2 灰度图像 48
3.1.3 彩色图像 49
3.2 图像处理的基本操作 50
3.2.1 图像的读取、显示和保存 50
3.2.2 图像通道的基本操作 53
3.2.3 图像属性的获取 55
3.3 初识Numpy.array 56
3.4 图像运算 57
3.4.1 加法运算 57
3.4.2 减法运算 59
3.4.3 乘法运算 61
3.4.4 除法运算 63
3.4.5 逻辑运算 64
3.5 图像的色彩空间转换 68
3.5.1 色彩空间类型转换函数 68
3.5.2 RGB色彩空间 68
3.5.3 GRAY色彩空间 69
3.5.4 YCrCb色彩空间 70
3.5.5 HSV色彩空间 71
3.6 思考与练习 73
第4章 图像几何变换 74
4.1 仿射变换 74
4.1.1 平移 75
4.1.2 缩放 76
4.1.3 旋转 77
4.2 重映射 78
4.2.1 复制 78
4.2.2 绕x轴翻转 80
4.2.3 绕y轴翻转 82
4.2.4 绕x轴与y轴翻转 85
4.3 投影变换 87
4.3.1 原理简介 87
4.3.2 Python实现 87
4.4 极坐标变换 89
4.4.1 原理简介 89
4.4.2 Python实现 90
4.5 思考与练习 93
第5章 图像直方图处理 94
5.1 直方图概述 94
5.2 直方图的绘制 95
5.2.1 用OpenCV绘制直方图 95
5.2.2 用pyplot绘制直方图 98
5.3 直方图正规化 99
5.3.1 正规化原理 99
5.3.2 Python实现 99
5.3.3 使用normalize实现 100
5.4 直方图均衡化 102
5.4.1 均衡化原理简介 102
5.4.2 Python实现 104
5.4.3 自适应直方图均衡化 108
5.5 思考与练习 110
第6章 图像平滑滤波处理 111
6.1 图像平滑概述 111
6.2 高斯滤波 112
6.2.1 原理简介 112
6.2.2 Python实现 113
6.3 均值滤波 114
6.3.1 原理简介 114
6.3.2 Python实现 115
6.4 方框滤波 117
6.4.1 原理简介 117
6.4.2 Python实现 117
6.5 中值滤波 119
6.5.1 原理简介 119
6.5.2 Python实现 120
6.6 双边滤波 121
6.6.1 原理简介 121
6.6.2 Python实现 122
6.7 2D卷积核的实现 123
6.8 思考与练习 125
第7章 图像阈值处理 126
7.1 阈值处理概述 126
7.2 全局阈值处理 126
7.2.1 原理简介 126
7.2.2 OpenCV阈值函数cv2.threshold() 127
7.2.3 阈值分割实例 127
7.3 局部阈值处理 136
7.3.1 原理简介 136
7.3.2 cv2.adaptiveThreshold()函数 137
7.4 Otsu阈值处理 139
7.4.1 原理简介 139
7.4.2 Python实现 140
7.5 思考与练习 141
第8章 图像形态学处理 142
8.1 腐蚀 142
8.1.1 原理简介 142
8.1.2 Python实现 143
8.2 膨胀 145
8.2.1 原理简介 145
8.2.2 Python实现 146
8.3 形态学梯度运算 148
8.3.1 原理简介 148
8.3.2 Python实现 148
8.4 开运算与闭运算 149
8.4.1 原理简介 150
8.4.2 Python实现 150
8.5 黑帽与礼帽运算 153
8.5.1 原理简介 153
8.5.2 Python实现 154
8.6 思考与练习 155
第9章 图像分割处理 157
9.1 分水岭算法的介绍与实现 157
9.1.1 算法原理 157
9.1.2 OpenCV中的相关函数 158
9.2 图像的金字塔分割 165
9.2.1 图像金字塔简介 165
9.2.2 OpenCV中的相关函数 166
9.2.3 用金字塔算法实现图像分割 170
9.3 思考与练习 171
第10章 图像梯度及边缘检测 172
10.1 Sobel算子 172
10.1.1 原理简介 172
10.1.2 Python实现 173
10.2 Scharr算子 176
10.2.1 原理简介 176
10.2.2 Python实现 176
10.3 Canny边缘检测 179
10.3.1 原理简介 179
10.3.2 Python实现 180
10.4 Laplacian算子 182
10.4.1 原理简介 182
10.4.2 Python实现 182
10.5 高斯拉普拉斯边缘检测 184
10.5.1 原理简介 184
10.5.2 Python实现 185
10.6 思考与练习 187
第11章 图像轮廓检测与拟合 188
11.1 OpenCV中轮廓的查找与绘制 188
11.1.1 轮廓的查找与绘制 188
11.1.2 查找绘制轮廓的实例 189
11.2 OpenCV中轮廓的周长与面积 192
11.2.1 周长计算:cv2.arcLength()函数 192
11.2.2 面积计算:cv2.contourArea()函数 193
11.3 几何图形的最小外包与拟合 194
11.3.1 最小外包矩形 195
11.3.2 最小外包圆形 196
11.3.3 最小外包三角形 197
11.3.4 最小外包椭圆 199
11.3.5 最优拟合直线 200
11.4 霍夫检测 201
11.4.1 霍夫直线检测 201
11.4.2 霍夫圆检测 204
11.5 思考与练习 205
第12章 人脸识别实现 207
12.1 绘图基础 207
12.1.1 绘制直线:cv2.line()函数 207
12.1.2 绘制矩形:cv2.rectangle()函数 209
12.1.3 绘制圆形:cv2.circle()函数 210
12.1.4 绘制椭圆:cv2.ellipse()函数 212
12.1.5 在图形上绘制文字:cv2.putText()函数 213
12.2 人脸检测 214
12.2.1 OpenCV中级联分类器的使用 215
12.2.2 Python实现 215
12.3 人脸识别 217
12.3.1 原理简介 217
12.3.2 相关函数 217
12.3.3 LBPH人脸识别的Python实现 218
12.4 用Fisherfaces与EigenFaces算法进行人脸识别 220
12.4.1 相关函数 220
12.4.2 Python实现 221
12.5 思考与练习 223