第1章 OpenCV入门 1
1.1了解人类视觉系统 1
1.2人类如何理解图像内容 3
1.3你能用OpenCV做什么 4
1.3.1内置数据结构和输入/输出 4
1.3.2图像处理操作 5
1.3.3 GUI 5
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安装OpenCV 10
1.4.1 Windows 11
1.4.2 Mac OS X 11
1.4.3 Linux 13
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 OCR 172
10.4.1在Windows上安装Tesseract 172
10.4.2在Mac上安装Tesseract 173
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使用文本API 182
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导入OpenCV 201
12.5用SSD进行人脸检测 204
12.5.1 SSD模型架构 204
12.5.2将SSD人脸检测导入OpenCV 204
12.6总结 208