书海网短评:
OpenCV3是一种先进的计算机视觉库,它提供了很多图像和视频处理操作,以及一些代表计算机视觉未来发展方向的功能,如人脸识别或目标跟踪。学习计算机视觉算法、模型和OpenCVAPI的基本概念之后,可以开发各种现实生活中的应用
OpenCV3是一种先进的计算机视觉库,它提供了很多图像和视频处理操作,以及一些代表计算机视觉未来发展方向的功能,如人脸识别或目标跟踪。学习计算机视觉算法、模型和OpenCVAPI的基本概念之后,可以开发各种现实生活中的应用程序(如安全和监控方面的应用程序)。
《OpenCV 3计算机视觉:Python语言实现(原书第2版)》从图像处理的基本操作出发,带你开启先进计算机视觉的探索之旅。计算机视觉是一个快速发展的学科,与其相关的现实应用也呈爆炸性增长,《OpenCV 3计算机视觉:Python语言实现(原书第2版)》的目的就是帮助计算机视觉领域的新手和想要了解全新的OpenCV3.0.0的计算机视觉专家快速掌握基于Python的OpenCV计算机视觉开发的实用方法、技巧和实践。
通过阅读《OpenCV 3计算机视觉:Python语言实现(原书第2版)》,你将学到:
安装和熟练使用基于Python的OpenCV3的API
掌握图像处理和视频分析的基础知识
在图像和视频中检测和识别目标
使用OpenCV检测和识别人脸
训练和使用自己的对象分类器
了解计算机视觉中的机器学习概念
使用OpenCV的人工神经网络来解决实际问题
开发现实生活中的计算机视觉应用
OpenCV是开源、跨平台的计算机视觉库,由英特尔公司发起并参与开发,在商业和研究领域中可以免费使用。《OpenCV 3计算机视觉:Python语言实现(原书第2版)》介绍了如何通过Python来开发基于OpenCV3.0的应用。作为当前非常流行的动态语言之一,Python不仅使用非常简单,而且功能强大。通过Python来学习OpenCV框架,可以让你很快理解计算机视觉的基本概念以及重要算法。
《OpenCV 3计算机视觉:Python语言实现(原书第2版)》分9章来介绍计算机视觉的重要概念,所有的概念都融入了一些很有趣的项目。《OpenCV 3计算机视觉:Python语言实现(原书第2版)》首先详细介绍了多个平台下基于Python的OpenCV安装,继而介绍了计算机视觉应用的基本操作,包括:图像文件的读取与显示,图像处理的基本操作(比如边缘检测等),深度估计与分割,人脸检测与识别,图像的检索,目标的检测与识别,目标跟踪,神经网络的手写体识别。可以这样说,《OpenCV 3计算机视觉:Python语言实现(原书第2版)》是一本不可多得的采用OpenCV实践计算机视觉应用的好书。
作者简介
JoeMinichino HooluxMedical计算机视觉工程师,NoSQL数据库LokiJS的开发者。他是一个充满激情的程序员,对编程语言和技术充满好奇,并不断尝试。在Hoolux,Joe领导了针对医疗行业的Android计算机视觉广告平台的开发。
JosephHowse NummistMedia公司总裁,自2012年起,出版了多部OpenCV方面的著作,包括《OpenCVforSecretAgents》《AndroidApplicationProgrammingwithOpenCV3》和《OpenCVComputerVisionwithPython》等。
译者简介
刘波 博士,任教于重庆工商大学计算机科学与信息工程学院,主要从事机器学习理论、计算机视觉和优化技术研究,同时对Hadoop和Spark平台上的大数据分析感兴趣,也对Linux平台的编程和Oracle数据库感兴趣。
苗贝贝 硕士,北京工商大学计算机与信息工程学院研究生,主要从事机器学习理论、时间序列动力学特征分析及应用的研究,对基于Python的计算机视觉分析有浓厚的兴趣。
史斌 毕业于电子科技大学计算机学院,目前就职于成都知数科技有限公司,主要从事数据爬取、数据处理、平台运维等工作,熟悉Python、Linuxshell,同时热爱计算机视觉编程,熟悉Python下的OpenCV编程。
目 录 Contents
译者序
前言
作者简介
审校者简介
译者简介
第1章 安装OpenCV1
1.1 选择和使用合适的安装工具2
1.1.1 在Windows上安装2
1.1.2 在OSX系统中安装6
1.1.3 在Ubuntu及其衍生版本中安装11
1.1.4 在其他类Unix系统中安装12
1.2 安装Contrib模块13
1.3 运行示例13
1.4 查找文档、帮助及更新14
1.5 总结15
第2章 处理文件、摄像头和图形用户界面16
2.1 基本I/O脚本16
2.1.1 读/写图像文件16
2.1.2 图像与原始字节之间的转换19
2.1.3 使用numpy.array访问图像数据20
2.1.4 视频文件的读/写22
2.1.5 捕获摄像头的帧23
2.1.6 在窗口显示图像24
2.1.7 在窗口显示摄像头帧25
2.2 Cameo项目(人脸跟踪和图像处理)26
2.3 Cameo—面向对象的设计27
2.3.1 使用managers.CaptureManager提取视频流27
2.3.2 使用managers.WindowManager抽象窗口和键盘32
2.3.3 cameo.Cameo的强大实现33
2.4 总结34
第3章 使用OpenCV3处理图像36
3.1 不同色彩空间的转换36
3.2 傅里叶变换37
3.2.1 高通滤波器37
3.2.2 低通滤波器39
3.3 创建模块39
3.4 边缘检测40
3.5 用定制内核做卷积41
3.6 修改应用43
3.7 Canny边缘检测44
3.8 轮廓检测45
3.9 边界框、最小矩形区域和最小闭圆的轮廓46
3.10 凸轮廓与Douglas-Peucker算法48
3.11 直线和圆检测50
3.11.1 直线检测50
3.11.2 圆检测51
3.12 检测其他形状52
3.13 总结52
第4章 深度估计与分割53
4.1 创建模块53
4.2 捕获深度摄像头的帧54
4.3 从视差图得到掩模56
4.4 对复制操作执行掩模57
4.5 使用普通摄像头进行深度估计59
4.6 使用分水岭和GrabCut算法进行物体分割63
4.6.1 用GrabCut进行前景检测的例子64
4.6.2 使用分水岭算法进行图像分割66
4.7 总结69
第5章 人脸检测和识别70
5.1 Haar级联的概念70
5.2 获取Haar级联数据71
5.3 使用OpenCV进行人脸检测72
5.3.1 静态图像中的人脸检测72
5.3.2 视频中的人脸检测74
5.3.3 人脸识别76
5.4 总结82
第6章 图像检索以及基于图像描述符的搜索83
6.1 特征检测算法83
6.1.1 特征定义84
6.1.2 使用DoG和SIFT进行特征提取与描述86
6.1.3 使用快速Hessian算法和SURF来提取和检测特征89
6.1.4 基于ORB的特征检测和特征匹配91
6.1.5 ORB特征匹配93
6.1.6 K-最近邻匹配95
6.1.7 FLANN匹配96
6.1.8 FLANN的单应性匹配99
6.1.9 基于文身取证的应用程序示例102
6.2 总结105
第7章 目标检测与识别106
7.1 目标检测与识别技术106
7.1.1 HOG描述符107
7.1.2 检测人112
7.1.3 创建和训练目标检测器113
7.2 汽车检测116
7.2.1 代码的功能118
7.2.2 SVM和滑动窗口122
7.3 总结134
第8章 目标跟踪135
8.1 检测移动的目标135
8.2 背景分割器:KNN、MOG2和GMG138
8.2.1 均值漂移和CAMShift142
8.2.2 彩色直方图144
8.2.3 返回代码146
8.3 CAMShift147
8.4 卡尔曼滤波器149
8.4.1 预测和更新149
8.4.2 范例150
8.4.3 一个基于行人跟踪的例子153
8.4.4 Pedestrian类154
8.4.5 主程序157
8.5 总结159
第9章 基于OpenCV的神经网络简介160
9.1 人工神经网络160
9.2 人工神经网络的结构161
9.2.1 网络层级示例162
9.2.2 学习算法163
9.3 OpenCV中的ANN164
9.3.1 基于ANN的动物分类166
9.3.2 训练周期169
9.4 用人工神经网络进行手写数字识别170
9.4.1 MNIST—手写数字数据库170
9.4.2 定制训练数据170
9.4.3 初始参数171
9.4.4 迭代次数171
9.4.5 其他参数171
9.4.6 迷你库172
9.4.7 主文件175
9.5 可能的改进和潜在的应用180
9.5.1 改进180
9.5.2 应用181
9.6 总结181









