推荐编程书籍:OpenCV 3计算机视觉:Python语言实现(原书第2版),由机械工业出版社2016-06-01月出版发行,本书编译以及作者信息 为:[爱尔兰] 乔·米尼奇诺(JoeMinichino) 著,[爱尔兰] 乔·米尼奇诺(JoeMinichino) 编,刘波苗贝贝史斌等 译,此次为第1次发行, 国际标准书号为:9787111539759,品牌为机工出版, 这本书采用平装开本为16开,纸张采为胶版纸,全书共有181页字数万字,是本Python 编程相关非常不错的书。
此书内容摘要
OpenCV是开源、跨平台的计算机视觉库,由英特尔公司发起并参与开发,在商业和研究领域中可以免费使用。本书介绍了如何通过Python来开发基于OpenCV 3.0的应用。作为当前非常流行的动态语言之一,Python不仅使用非常简单,而且功能强大。通过Python来学习OpenCV框架,可以让你很快理解计算机视觉的基本概念以及重要算法。
本书分9章来介绍计算机视觉的重要概念,所有的概念都融入了一些很有趣的项目。本书首先详细介绍了多个平台下基于Python的OpenCV安装,继而介绍了计算机视觉应用的基本操作,包括:图像文件的读取与显示,图像处理的基本操作(比如边缘检测等),深度估计与分割,人脸检测与识别,图像的检索,目标的检测与识别,目标跟踪,神经网络的手写体识别。可以这样说,本书是一本不可多得的采用OpenCV实践计算机视觉应用的好书。
关于此书作者
作者简介
Joe MinichinoHoolux Medical计算机视觉工程师,NoSQL数据库LokiJS的开发者。他是一个充满激情的程序员,对编程语言和技术充满好奇,并不断尝试。在Hoolux,Joe领导了针对医疗行业的Android计算机视觉广告平台的开发。
Joseph HowseNummist 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 3是一种先进的计算机视觉库,它提供了很多图像和视频处理操作,以及一些代表计算机视觉未来发展方向的功能,如人脸识别或目标跟踪。学习计算机视觉算法、模型和OpenCV API的基本概念之后,可以开发各种现实生活中的应用程序(如安全和监控方面的应用程序)。
本书从图像处理的基本操作出发,带你开启先进计算机视觉的探索之旅。计算机视觉是一个快速发展的学科,与其相关的现实应用也呈爆炸性增长,本书的目的就是帮助计算机视觉领域的新手和想要了解全新的OpenCV 3.0.0的计算机视觉专家快速掌握基于Python的OpenCV计算机视觉开发的实用方法、技巧和实践。
通过阅读本书,你将学到:
安装和熟练使用基于Python的OpenCV 3的API
掌握图像处理和视频分析的基础知识
在图像和视频中检测和识别目标
使用OpenCV检测和识别人脸
训练和使用自己的对象分类器
了解计算机视觉中的机器学习概念
使用OpenCV的人工神经网络来解决实际问题
开发现实生活中的计算机视觉应用
OpenCV 3计算机视觉:Python语言实现(原书第2版)图书的目录
目录Contents
译者序
前言
作者简介
审校者简介
译者简介
第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.2Cameo项目(人脸跟踪和图像处理) 26
2.3Cameo—面向对象的设计 27
2.3.1使用managers. CaptureManager提取视频流 27
2.3.2使用managers.WindowManager抽象窗口和键盘 32
2.3.3cameo.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.7Canny边缘检测 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.1Haar级联的概念 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.5ORB特征匹配 93
6.1.6K-最近邻匹配 95
6.1.7FLANN匹配 96
6.1.8FLANN的单应性匹配 99
6.1.9基于文身取证的应用程序示例 102
6.2总结 105
第7章目标检测与识别 106
7.1目标检测与识别技术 106
7.1.1HOG描述符 107
7.1.2检测人 112
7.1.3创建和训练目标检测器 113
7.2汽车检测 116
7.2.1代码的功能 118
7.2.2SVM和滑动窗口 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.3CAMShift 147
8.4卡尔曼滤波器 149
8.4.1预测和更新 149
8.4.2范例 150
8.4.3一个基于行人跟踪的例子 153
8.4.4Pedestrian类 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.3OpenCV中的ANN 164
9.3.1基于ANN的动物分类 166
9.3.2训练周期 169
9.4用人工神经网络进行手写数字识别 170
9.4.1MNIST—手写数字数据库 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
部分内容试读
Preface前言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)本书页面,下载本书示例代码。
作者简介Abut the AuthorsJoe Minichino是Hoolux Medical从事计算机视觉的工程师,他利用业余时间开发了NoSQL数据库LokiJS。他也是重金属歌手/作曲家。他是一个充满激情的程序员,对编程语言和技术非常好奇,并一直在使用它们。在Hoolux,Joe领导了针对医疗行业的Android计算机视觉广告平台的开发。
他出生在意大利瓦雷泽市的Lombardy,并在那里长大,在米兰Universitá Statale受过哲学教育,最近11年Joe在爱尔兰的Cork度过,在这里他成为Cork技术研究所的一名计算机研究生。
我非常感谢我的合作伙伴Rowena,她总是鼓励我,也感谢两个小女儿给我灵感。非常感谢这本书的合作者和编辑,尤其是Joe Howse、Adrian Roesbrock、Brandon Castellano、OpenCV社区,以及Packt出版社中那些为本书付出劳动的人。
Joseph Howse生活在加拿大。在冬天,他留着胡子,而他的四只猫留着厚皮毛。他喜欢每天给猫梳毛。有时猫还会抓他的胡子。
自2012年以来,他一直在为Packt出版社写作,他的著作包括《OpenCV for Secret Agents》《OpenCV Blueprints》《Android Application Programming with OpenCV 3》《OpenCV Computer Vision with Python》以及《Python Game Programming by Example》。
当他不写书或打理萌宠时,他会提供咨询和培训,并通过他的公司(Nummist Media公司(http://nummist.com))进行软件开发服务。
Abut the Reviewers审校者简介Nandan Banerjee拥有计算机学士学位和机器人工程硕士学位。他毕业后在三星电子工作。他在班加罗尔的研发中心工作了一年。为了参加DARPA机器人挑战,他还曾在位于Atlas的Boston Dynamics机器人公司的WPI-CMU团队工作过。目前他是iRobot公司的一名机器人软件工程师。他是一名嵌入式系统和机器人爱好者,主要喜欢计算机视觉和运动规划。他熟悉各种语言,包括C、C++、Python、Java和Delphi。他在工作中会用到ROS、OpenRAVE、OpenCV、PCL、OpenGL、CUDA和Android SDK。
我要感谢作者和出版商能出版这样精彩的书。
Tian Cao在美国教堂山的北卡罗来纳州大学攻读计算机博士学位,并参与图像分析、计算机视觉和机器学习等项目。
我将这项工作献给我的父母和女友。
Brandon Castellano来自加拿大的学生,在加拿大伦敦市西安大略大学攻读电气工程硕士学位。在2012年,他获得同专业的学士学位。他主要研究实时图像处理算法的并行处理实现和GPGPU/FPGA优化。Brandon也在Eagle Vision Systems公司工作过,他在这家公司主要专注于机器人应用中的实时图像处理。
虽然他使用OpenCV和C++超过5年了,但他在研究中一直提倡使用Python,因为Python开发速度快,可与复杂系统实现低级对接。他在GitHub上有开源项目,例如,PySceneDetect,这些项目大部分是用Python编写的。除了图像/视频处理,他还致力于实现三维展示,并提供软件工具来支持这样的开发。
他除了在他的网站(http://www.bcastell.com)上张贴技术文章和教程外,还参与各种开源和不开源的项目,他在GitHub上的用户名为Breakthrough(http://www.github.com/Breakthrough)。他是Super User和Stack Overflow社区的活跃成员(其名字仍是Breakthrough),可直接通过他的网站与他联系。
我要感谢过去几年所有的朋友和家人的耐心(尤其是我的父母Peter和Lori以及我的兄弟Mitchell),没有他们持续的爱和支持,我不可能取得这一切成就。
我还要特别感谢所有致力开源软件库的开发者,特别是OpenCV,这有助于将前沿的软件技术免费带给世界各地的软件开发者。也想感谢那些写文档、提交错误报告和写教程/书籍(尤其是这本书的作者!)的人们,你们的贡献对任何开源项目的成功至关重要,尤指像OpenCV这样复杂庞大的开源软件。
Haojian Jin位于加拿大Sunnyvale雅虎实验室的软件工程师/研究员。他主要开发移动新设备上(或最少硬件更改)的新系统。为了创建当今不存在的事物,他花费了大量时间来研究信号处理、计算机视觉、机器学习和自然语言处理,并以有趣的方式来使用它们。可在http://shift-3.com/上找到更多关于他的信息。
Adrian Rosebrock一位作家,也是http://www.pyimagesearch.com/的博主。他有马里兰大学计算机博士学位,侧重于计算机视觉和机器学习的研究。
他曾在癌症研究所从事通过乳腺图像来自动预测乳腺癌的危险因素的研究。他还写了《Practical Python and OpenCV》一书(http://pyimg.co/x7ed5),这本书介绍如何利用Python和OpenCV来构建现实世界中的计算机视觉应用。
About the Translators译者简介刘波博士,重庆工商大学计算机与信息工程学院教师,主要从事机器学习理论、计算机视觉和最优化技术研究,同时对Hadoop和Spark平台上的大数据分析感兴趣,也对Linux编程和Oracle数据库感兴趣。
苗贝贝硕士,北京工商大学计算机与信息工程学院研究生,主要从事机器学习理论、时间序列动力学特征分析及应用的研究,对基于Python的计算机视觉分析有浓厚的兴趣。
史斌2015年本科毕业于电子科技大学计算机学院,目前就职于成都知数科技有限公司,主要从事数据爬取、数据处理、平台运维等工作,熟悉Python、Linux shell,同时热爱计算机视觉编程,熟悉Python下的OpenCV编程。
关于此书评价
暂无.
书摘内容
暂无.
OpenCV 3计算机视觉:Python语言实现(原书第2版)最新最全的试读、书评、目录、简介信息由Python中文网整理提供。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试