![](https://www.wditl.com/wp-content/uploads/2023/06/1687660562-78805a221a988e7.png)
内容摘要
本书注重基础、循序渐进,系统地介绍了使用Python实现OpenCV应用的相关基础知识。本书共分为10章,涵盖OpenCV起步、图像处理基础、图形用户界面、图像变换、边缘和轮廓、直方图、模板匹配和图像分割、特征检测、人脸检测和识别、机器学习和深度学习等内容。
本书内容丰富、讲解详细,适用于具有一定Python程序设计基础的OpenCV计算机视觉用户,可用作各类院校相关专业教材,同时也可作为OpenCV爱好者的参考书。
目录
第1章
OpenCV起步 1
1.1 OpenCV简介 1
1.1.1 OpenCV主要功能及模块介绍 1
1.1.2 OpenCV的版本 3
1.1.3 OpenCV-Python 3
1.2 配置开发环境 4
1.2.1 安装Python 4
1.2.2 安装NumPy 5
1.2.3 安装OpenCV-Python 6
1.2.4 安装Visual Studio Code 9
1.3 使用OpenCV文档和示例 10
1.3.1 查看OpenCV文档 10
1.3.2 查看OpenCV-Python示例 11
1.4 实验 13
1.4.1 实验1:配置虚拟开发环境 13
1.4.2 实验2:在VS Code中运行
示例 15
习题 16
第2章
图像处理基础 17
2.1 NumPy简介 17
2.1.1 数据类型 17
2.1.2 创建数组 18
2.1.3 数组的形状 20
2.1.4 索引、切片和迭代 21
2.1.5 数组运算 22
2.2 图像基础操作 24
2.2.1 读、写、显示图像 24
2.2.2 读、写、播放视频 27
2.2.3 操作灰度图像 29
2.2.4 操作彩色图像 30
2.2.5 图像通道操作 31
2.3 图像运算 33
2.3.1 加法运算 33
2.3.2 加权加法运算 34
2.3.3 位运算 35
2.4 实验 36
2.4.1 实验1:为人物图像打码 36
2.4.2 实验2:创建图像掩模 37
习题 39
第3章
图形用户界面 40
3.1 窗口控制 40
3.1.1 创建和关闭窗口 40
3.1.2 调整窗口大小 41
3.2 绘图 41
3.2.1 绘制直线 41
3.2.2 绘制矩形 42
3.2.3 绘制圆 43
3.2.4 绘制椭圆 44
3.2.5 绘制多边形 44
3.2.6 绘制文本 45
3.2.7 绘制箭头 47
3.3 响应鼠标事件 47
3.4 使用跟踪栏 49
3.5 实验 50
3.5.1 实验1:使用鼠标指针取点绘图 50
3.5.2 实验2:使用跟踪栏选择通道图像 51
习题 52
第4章
图像变换 54
4.1 色彩空间变换 54
4.1.1 RGB色彩空间 54
4.1.2 GRAY色彩空间 55
4.1.3 YCrCb色彩空间 56
4.1.4 HSV色彩空间 57
4.2 几何变换 58
4.2.1 缩放 58
4.2.2 翻转 59
4.2.3 仿射 60
4.2.4 透视 64
4.3 图像模糊 65
4.3.1 均值滤波 65
4.3.2 高斯滤波 67
4.3.3 方框滤波 68
4.3.4 中值滤波 69
4.3.5 双边滤波 70
4.3.6 2D卷积 71
4.4 阈值处理 72
4.4.1 全局阈值处理 72
4.4.2 自适应阈值处理 78
4.5 形态变换 79
4.5.1 形态操作内核 79
4.5.2 腐蚀 80
4.5.3 膨胀 82
4.5.4 高级形态操作 83
4.6 实验 86
4.6.1 实验1:图像几何变换 86
4.6.2 实验2:图像形态变换 87
习题 88
第5章
边缘和轮廓 89
5.1 边缘检测 89
5.1.1 Laplacian边缘检测 89
5.1.2 Sobel边缘检测 90
5.1.3 Canny边缘检测 91
5.2 图像轮廓 92
5.2.1 查找轮廓 92
5.2.2 绘制轮廓 94
5.2.3 轮廓特征 95
5.3 霍夫变换 106
5.3.1 霍夫直线变换 106
5.3.2 霍夫圆变换 108
5.4 实验 110
5.4.1 实验1:执行Canny边缘检测 110
5.4.2 实验2:查找和绘制轮廓 111
习题 112
第6章
直方图 113
6.1 直方图基础 113
6.1.1 用hist()函数绘制直方图 113
6.1.2 用calcHist()函数查找直方图 114
6.1.3 应用掩模的直方图 115
6.1.4 NumPy中的直方图 116
6.2 直方图均衡化 117
6.2.1 普通直方图均衡化 117
6.2.2 限制对比度自适应直方图均衡化 118
6.3 二维直方图 120
6.3.1 OpenCV中的二维直方图 120
6.3.2 NumPy中的二维直方图 121
6.4 实验 122
6.4.1 实验1:使用NumPy函数计算直方图 122
6.4.2 实验2:使用OpenCV函数计算直方图 123
习题 124
第7章
模板匹配和图像分割 125
7.1 模板匹配 125
7.1.1 单目标匹配 125
7.1.2 多目标匹配 127
7.2 图像分割 128
7.2.1 使用分水岭算法分割图像 128
7.2.2 图像金字塔 131
7.3 交互式前景提取 135
7.4 实验 138
7.4.1 实验1:使用模板匹配查找图像 138
7.4.2 实验2:使用交互式前景提取方法分割图像 139
习题 140
第8章
特征检测 141
8.1 角检测 141
8.1.1 哈里斯角检测 141
8.1.2 优化哈里斯角 142
8.1.3 Shi-Tomasi角检测 143
8.2 特征点检测 144
8.2.1 FAST特征检测 145
8.2.2 SIFT特征检测 146
8.2.3 ORB特征检测 147
8.3 特征匹配 147
8.3.1 暴力匹配器 147
8.3.2 FLANN匹配器 151
8.4 对象查找 152
8.5 实验 154
8.5.1 实验1:应用Shi-Tomasi角检测器 154
8.5.2 实验2: 应用特征匹配查找对象 155
习题 157
第9章
人脸检测和识别 158
9.1 人脸检测 158
9.1.1 基于Haar的人脸检测 158
9.1.2 基于深度学习的人脸检测 161
9.2 人脸识别 162
9.2.1 EigenFaces人脸识别 163
9.2.2 FisherFaces人脸识别 164
9.2.3 LBPH人脸识别 165
9.3 实验 167
9.3.1 实验1:使用Haar级联检测器 167
9.3.2 实验2:使用EigenFaces人脸识别器 168
习题 169
第10章
机器学习和深度学习 170
10.1 机器学习 170
10.1.1 kNN算法 170
10.1.2 SVM算法 173
10.1.3 k均值聚类算法 175
10.2 深度学习 177
10.2.1 基于深度学习的图像识别 177
10.2.2 基于深度学习的对象检测 181
10.3 实验 185
10.3.1 实验1:调整图像颜色 185
10.3.2 实验2:检测视频中的对象 186
习题 188