首页>参考读物>计算机科学与技术>综合

OpenCV 3计算机视觉:Python语言实现(原书第2版)
作者 : [爱尔兰] 乔·米尼奇诺(Joe Minichino) [加] 约瑟夫·豪斯(Joseph Howse) 著
译者 : 刘波 苗贝贝 史斌 译
丛书名 : 华章程序员书库
出版日期 : 2016-06-15
ISBN : 978-7-111-53975-9
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 197
开本 : 16
原书名 : Learning OpenCV 3 Computer Vision with Python,Second Edition
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

OpenCV 3是一种最先进的计算机视觉库,它提供了很多图像和视频处理操作,以及一些代表计算机视觉未来发展方向的功能,如人脸识别或目标跟踪。学习计算机视觉算法、模型和OpenCV API的基本概念之后,可以开发各种现实生活中的应用程序(如安全和监控方面的应用程序)。
本书从图像处理的基本操作出发,带你开启先进计算机视觉的探索之旅。计算机视觉是一个快速发展的学科,与其相关的现实应用也呈爆炸性增长,本书的目的就是帮助计算机视觉领域的新手和想要了解全新的OpenCV 3.0.0的计算机视觉专家快速掌握基于Python的OpenCV计算机视觉开发的实用方法、技巧和最佳实践。

通过阅读本书,你将学到:
  安装和熟练使用基于Python的OpenCV 3的API
  掌握图像处理和视频分析的基础知识
  在图像和视频中检测和识别目标
  使用OpenCV检测和识别人脸
  训练和使用自己的对象分类器
  了解计算机视觉中的机器学习概念
  使用OpenCV的人工神经网络来解决实际问题
  开发现实生活中的计算机视觉应用

作者简介
Joe Minichino Hoolux Medical计算机视觉工程师,NoSQL数据库LokiJS的开发者。他是一个充满激情的程序员,对编程语言和技术充满好奇,并不断尝试。在Hoolux,Joe领导了针对医疗行业的Android计算机视觉广告平台的开发。
Joseph Howse Nummist Media公司总裁,自2012年起,出版了多部OpenCV方面的著作,包括《OpenCV for Secret Agents》《Android Application Programming with OpenCV 3》和《OpenCV Computer Vision with Python》等。

译者简介
刘波 博士,任教于重庆工商大学计算机科学与信息工程学院,主要从事机器学习理论、计算机视觉和最优化技术研究,同时对Hadoop和Spark平台上的大数据分析感兴趣,也对Linux平台的编程和Oracle数据库感兴趣。
苗贝贝 硕士,北京工商大学计算机与信息工程学院研究生,主要从事机器学习理论、时间序列动力学特征分析及应用的研究,对基于Python的计算机视觉分析有浓厚的兴趣。
史斌 毕业于电子科技大学计算机学院,目前就职于成都知数科技有限公司,主要从事数据爬取、数据处理、平台运维等工作,熟悉Python、Linux shell,同时热爱计算机视觉编程,熟悉Python下的OpenCV编程。

内容简介
OpenCV是开源、跨平台的计算机视觉库,由英特尔公司发起并参与开发,在商业和研究领域中可以免费使用。本书介绍了如何通过Python来开发基于OpenCV 3.0的应用。作为当前非常流行的动态语言之一,Python不仅使用非常简单,而且功能强大。通过Python来学习OpenCV框架,可以让你很快理解计算机视觉的基本概念以及重要算法。
本书分9章来介绍计算机视觉的重要概念,所有的概念都融入了一些很有趣的项目。本书首先详细介绍了多个平台下基于Python的OpenCV安装,继而介绍了计算机视觉应用的基本操作,包括:图像文件的读取与显示,图像处理的基本操作(比如边缘检测等),深度估计与分割,人脸检测与识别,图像的检索,目标的检测与识别,目标跟踪,神经网络的手写体识别。可以这样说,本书是一本不可多得的采用OpenCV实践计算机视觉应用的好书。

图书前言

OpenCV 3是一种先进的计算机视觉库,可以用于各种图像和视频处理操作,通过OpenCV 3 能很容易地实现一些有前景且功能先进的应用(比如:人脸识别或目标跟踪等)。理解与计算机视觉相关的算法、模型以及OpenCV 3 API背后的基本概念,有助于开发现实世界中的各种应用程序(比如:安全和监视领域的工具)。
本书将从图像处理的基本操作出发,带你开启先进计算机视觉概念的探索之旅。计算机视觉是一个快速发展的学科,在现实生活中,它的应用增长得非常快,因此写作本书的目的是为了帮助计算机视觉领域的新手和想要了解全新的OpenCV 3.0.0的计算机视觉专家。
本书的主要内容
第1章介绍如何在不同平台下安装基于Python的OpenCV,并给出一些常见问题的解决方法。
第2章介绍了OpenCV的I/O功能,并讨论与项目相关的概念,以及如何针对该项目进行面向对象设计。
第3章介绍一些图像变换方法,例如在图像中检测肤色、锐化图像、标记主体轮廓,以及使用线段检测器检测人行横道等。
第4章介绍如何利用深度摄像头的数据来识别前景和背景区域,这样就可以限制针对前景或背景的效果。
第5章介绍一些OpenCV的人脸检测功能和相关的数据文件,这些文件定义了跟踪目标的特定类型。
第6章介绍如何用OpenCV来检测图像特征,并利用这些特征来匹配和搜索图像。
第7章介绍目标检测和目标识别的概念,这是计算机视觉中最常见的问题之一。
第8章对目标跟踪进行深入探讨,目标跟踪是对摄像机中的图像或视频中移动的物体进行定位的过程。
第9章介绍基于OpenCV的人工神经网络,并介绍其在现实生活中的应用。
阅读前的准备工作
本书第1章会指导读者安装所有必要软件,你只需准备一台较新的计算机。另外,强烈推荐为计算机安装摄像头,但这并不是必备的。
本书的读者对象
本书针对具有一定Python工作经验的程序员以及想要利用OpenCV库研究计算机视觉课题的读者。本书不要求读者具有计算机视觉或OpenCV经验,但要具有编程经验。
本书体例
本书有很多用来区分不同信息的文本格式,下面给出一些这类格式的样例,并解释它们的含义。
代码块的格式如下:

为了提醒读者注意代码块中的特殊部分,会将相关行或相关项设置为粗体:

命令行的输入或输出的格式为:

注意:警告或重要注释以这样的形式出现。
提示:提示和技巧以这样的形式出现。
下载示例代码
读者可登录华章网站(www.hzbook.com)本书页面,下载本书示例代码。

上架指导

计算机\图形图像

封底文字

OpenCV 3是一种最先进的计算机视觉库,它提供了很多图像和视频处理操作,以及一些代表计算机视觉未来发展方向的功能,如人脸识别或目标跟踪。学习计算机视觉算法、模型和OpenCV API的基本概念之后,可以开发各种现实生活中的应用程序(如安全和监控方面的应用程序)。
  本书从图像处理的基本操作出发,带你开启先进计算机视觉的探索之旅。计算机视觉是一个快速发展的学科,与其相关的现实应用也呈爆炸性增长,本书的目的就是帮助计算机视觉领域的新手和想要了解全新的OpenCV 3.0.0的计算机视觉专家快速掌握基于Python的OpenCV计算机视觉开发的实用方法、技巧和最佳实践。
通过阅读本书,你将学到:
  安装和熟练使用基于Python的OpenCV 3的API
  掌握图像处理和视频分析的基础知识
  在图像和视频中检测和识别目标
  使用OpenCV检测和识别人脸
  训练和使用自己的对象分类器
  了解计算机视觉中的机器学习概念
  使用OpenCV的人工神经网络来解决实际问题
  开发现实生活中的计算机视觉应用

作者简介

[爱尔兰] 乔·米尼奇诺(Joe Minichino) [加] 约瑟夫·豪斯(Joseph Howse) 著:暂无简介

译者简介

刘波 苗贝贝 史斌 译:暂无简介

译者序

计算机视觉是一门用计算机模拟生物视觉的学科,更具体地讲,就是让计算机代替人眼实现对目标的识别、分类、跟踪和场景理解。计算机视觉是人工智能的重要分支,也是一门具有很强综合性的学科,涉及计算机科学与工程、信号处理、光学、应用数学、统计学、神经生理学和认知科学等学科。
OpenCV是开源、跨平台的计算机视觉库,由英特尔公司发起并参与开发,在商业和研究领域中可以免费使用。本书介绍了如何通过Python来开发基于OpenCV 3.0的应用。作为当前非常流行的动态语言之一,Python不仅使用非常简单,而且功能强大。通过Python来学习OpenCV框架,可让读者快速理解计算机视觉的基本概念以及重要算法。
本书分9章来介绍计算机视觉的重要概念,所有的概念都融入了一些很有趣的项目。本书首先详细介绍了多个平台下基于Python的OpenCV安装,继而介绍了计算机视觉应用的基本操作,包括图像文件的读取与显示,图像处理的基本操作(比如边缘检测等),深度估计与分割,人脸检测与识别,图像的检索,目标的检测与识别,目标跟踪,神经网络的手写体识别。可以这样说,本书是一本不可多得的采用OpenCV实践计算机视觉应用的好书。
本书的第1章由重庆工商大学计算机科学与信息工程学院的刘波博士翻译;第2章、第5章至第9章由苗贝贝翻译;第3章和第4章由史斌翻译。同时,刘波博士负责全书的技术审稿工作。
翻译本书的过程也是译者不断学习的过程。为了保证专业词汇翻译的准确性,意译部分既不失原著意境又无偏差, 在翻译过程中查阅了大量相关资料。但由于时间和能力有很,书中内容难免出现差错。若有问题,读者可通过电子邮件liubo7971@163.com和alingse@foxmail.com与我们联系,欢迎一起探讨,共同进步。并且,我们也会将勘误信息公布在http://www.cnblogs.com/ml-cv/上。
本书翻译过程得到如下项目资助:(1)重庆市教委研究项目“多核正则化机器学习理论研究”,项目号为KJ130709;(2)重庆工商大学研究项目“基于多核学习的高维数据分析研究”,项目号为2013-56-09;(3)电子商务及供应链系统重庆市重点实验室研究项目“基于迹比率的特征选择及关键技术研究”;(4)大数据稀疏表示判别字典学习及其应用技术研究,项目号为KJ1400612。
感谢重庆工商大学计算机科学与信息工程学院金融信息化专业杨仕喜同学对本书代码进行验证,并提出了宝贵意见。感谢家人的支持与鼓励,尤其感谢妻子杨雪莉和女儿刘典、刘恩丫,她们的信任与鼓励给我提供了不断前进的动力。

刘波
2016年3月

图书目录

译者序
前言
作者简介
审校者简介
译者简介
第1章 安装OpenCV 1
1.1 选择和使用合适的安装工具 2
1.1.1 在Windows上安装 2
1.1.2 在OS X系统中安装 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章 使用OpenCV 3处理图像 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和GMG 138
8.2.1 均值漂移和CAMShift 142
8.2.2 彩色直方图 144
8.2.3 返回代码 146
8.3 CAMShift 147
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中的ANN 164
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

教学资源推荐
作者: [美]詹森 D.巴克斯(Jason D. Bakos)著
作者: 王月海 何丽 孟丹 张艳苏 编著
参考读物推荐
作者: 张丽蓝 郭宇博 徐锐 余冰冰 等著