OpenCV 4计算机视觉项目实战 原书第2版
作者:(西班牙)大卫·米兰·埃斯克里瓦(DavidMillanEscriva)著;冀臻译
出版时间: 2019年版
丛编项: 智能系统与技术丛书
内容简介
本书通过实例和项目讲解OpenCV概念及其算法。首先介绍OpenCV的安装和图像处理的基础知识。然后,覆盖用户界面并深入讲解图像处理,读者将学到复杂的计算机视觉算法,并探索机器学习和人脸检测。之后,本书将介绍如何在复杂场景中创建光流视频分析和背景减除,还将讲解文本分割和识别,以及新的和改进的深度学习模块的基础知识。*后,本书介绍了OpenCV的基础知识,例如矩阵运算、滤波器和直方图,帮读者掌握常用的计算机视觉技术,从头开始构建OpenCV项目。
目录
前言
作者简介
审校者简介
第1章 OpenCV入门1
1.1 了解人类视觉系统1
1.2 人类如何理解图像内容3
1.3 你能用OpenCV做什么4
1.3.1 内置数据结构和输入/输出4
1.3.2 图像处理操作5
1.3.3 GUI5
1.3.4 视频分析6
1.3.5 3D重建6
1.3.6 特征提取7
1.3.7 对象检测7
1.3.8 机器学习8
1.3.9 计算摄影8
1.3.10 形状分析9
1.3.11 光流算法9
1.3.12 人脸和对象识别9
1.3.13 表面匹配10
1.3.14 文本检测和识别10
1.3.15 深度学习10
1.4 安装OpenCV10
1.4.1 Windows11
1.4.2 Mac OS X11
1.4.3 Linux13
1.5 总结14
第2章 OpenCV基础知识导论15
2.1 技术要求15
2.2 基本CMake配置文件16
2.3 创建一个库16
2.4 管理依赖项17
2.5 让脚本更复杂18
2.6 图像和矩阵20
2.7 读/写图像22
2.8 读取视频和摄像头25
2.9 其他基本对象类型27
2.9.1 Vec对象类型27
2.9.2 Scalar对象类型28
2.9.3 Point对象类型28
2.9.4 Size对象类型29
2.9.5 Rect对象类型29
2.9.6 RotatedRect对象类型29
2.10 基本矩阵运算30
2.11 基本数据存储32
2.12 总结34
第3章 学习图形用户界面35
3.1 技术要求35
3.2 OpenCV用户界面介绍36
3.3 OpenCV的基本图形用户界面36
3.4 Qt图形用户界面44
3.5 OpenGL支持50
3.6 总结54
第4章 深入研究直方图和滤波器55
4.1 技术要求56
4.2 生成CMake脚本文件56
4.3 创建图形用户界面57
4.4 绘制直方图59
4.5 图像颜色均衡62
4.6 Lomography效果64
4.7 卡通效果68
4.8 总结72
第5章 自动光学检查、对象分割和检测73
5.1 技术要求73
5.2 隔离场景中的对象74
5.3 为AOI创建应用程序76
5.4 预处理输入图像78
5.4.1 噪声消除78
5.4.2 用光模式移除背景进行分割79
5.4.3 阈值84
5.5 分割输入图像85
5.5.1 连通组件算法85
5.5.2 findContours算法90
5.6 总结92
第6章 学习对象分类94
6.1 技术要求94
6.2 机器学习概念介绍95
6.3 计算机视觉和机器学习工作流程98
6.4 自动对象检查分类示例100
6.4.1 特征提取102
6.4.2 训练SVM模型105
6.4.3 输入图像预测109
6.5 总结111
第7章 检测面部部位与覆盖面具112
7.1 技术要求112
7.2 了解Haar级联112
7.3 什么是积分图像114
7.4 在实时视频中覆盖面具115
7.5 戴上太阳镜118
7.6 跟踪鼻子、嘴巴和耳朵121
7.7 总结122
第8章 视频监控、背景建模和形态学操作123
8.1 技术要求123
8.2 理解背景减除124
8.3 直接的背景减除124
8.4 帧差分128
8.5 高斯混合方法131
8.6 形态学图像处理133
8.7 使形状变细134
8.8 使形状变粗135
8.9 其他形态运算符136
8.9.1 形态开口136
8.9.2 形态闭合137
8.9.3 绘制边界138
8.9.4 礼帽变换139
8.9.5 黑帽变换140
8.10 总结140
第9章 学习对象跟踪141
9.1 技术要求141
9.2 跟踪特定颜色的对象141
9.3 构建交互式对象跟踪器143
9.4 用Harris角点检测器检测点148
9.5 用于跟踪的好特征151
9.6 基于特征的跟踪153
9.6.1 Lucas-Kanade方法153
9.6.2 Farneback算法157
9.7 总结161
第10章 开发用于文本识别的分割算法162
10.1 技术要求162
10.2 光学字符识别介绍162
10.3 预处理阶段164
10.3.1 对图像进行阈值处理164
10.3.2 文本分割165
10.4 在你的操作系统上安装Tesseract OCR172
10.4.1 在Windows上安装Tesseract172
10.4.2 在Mac上安装Tesseract173
10.5 使用Tesseract OCR库173
10.6 总结177
第11章 用Tesseract进行文本识别178
11.1 技术要求178
11.2 文本API的工作原理179
11.2.1 场景检测问题179
11.2.2 极值区域180
11.2.3 极值区域过滤181
11.3 使用文本API182
11.3.1 文本检测182
11.3.2 文本提取187
11.3.3 文本识别189
11.4 总结193
第12章 使用OpenCV进行深度学习194
12.1 技术要求194
12.2 深度学习简介195
12.2.1 什么是神经网络,我们如何从数据中学习195
12.2.2 卷积神经网络197
12.3 OpenCV中的深度学习198
12.4 YOLO用于实时对象检测199
12.4.1 YOLO v3深度学习模型架构200
12.4.2 YOLO数据集、词汇表和模型200
12.4.3 将YOLO导入OpenCV201
12.5 用SSD进行人脸检测204
12.5.1 SSD模型架构204
12.5.2 将SSD人脸检测导入OpenCV204
12.6 总结208