OpenCV在计算机视觉领域扮演着重要的角色。作为一个基于开源发行的跨平台计算机视觉库,OpenCV实现了图像处理和计算机视觉方面的很多通用算法。本书以当前版本的OpenCV最常用最核心的组件模块为索引,深入浅出地介绍了OpenCV2和OpenCV3中的强大功能、性能,以及新特性。书本配套的OpenCV2和OpenCV3双版本的示例代码包中,含有总计两百多个详细注释的程序源代码与思路说明。读者可以按图索骥,按技术方向进行快速上手和深入学习。
本书要求读者具有基础的C/C 知识,适合研究计算机视觉以及相关领域的在校学生和老师、初次接触OpenCV但有一定C/C 编程基础的研究人员,以及已有过OpenCV 1.0编程经验,想快速了解并上手OpenCV2、OpenCV3编程的计算机视觉领域的专业人员。本书也适合于图像处理、计算机视觉领域的业余爱好者、开源项目爱好者做为通向新版OpenCV的参考手册之用。
本书配套的[示例程序]、[.exe可执行文件]、[书内彩图]的下载链接可通过扫描本书封底或后勒口的二维码获取。
涵盖OpenCV2、OpenCV3双版本的核心编程技巧
附赠OpenCV2、OpenCV3双版本总计200余个配套示例程序源代码
毛星云,90后,网络ID“浅墨”。微软VC 领域价值专家(MVP),中国2013年度十大杰出IT博客作者,南京航空航天大学2014年度十大杰出青年。CSDN博客专家,2013年度CSDN博客之星,于CSDN写博数年,博客浏览量已逾252万人次。本科毕业于乌克兰国立航空航天大学以及南京航空航天大学,硕士就读于南京航空航天大学。已出版著作《逐梦旅程:Windows游戏编程之从零开始》,个人事迹曾多次被人民网、新华网、凤凰网、网易新闻、新浪新闻、金陵晚报、现代快报等主流媒体报道。
CSDN博客:blog.csdn.net/poem_qianmo
联系邮箱:happylifemxy@163.com
新浪微博:@浅墨_毛星云
及时部分 快速上手OpenCV 1
第1章 邂逅OpenCV 3
1.1 OpenCV周边概念认知 4
1.1.1 图像处理、计算机视觉与OpenCV 4
1.1.2 OpenCV概述 4
1.1.3 起源及发展 5
1.1.4 应用概述 6
1.2 OpenCV基本架构分析 7
1.3 OpenCV3带来了什么 11
1.3.1 项目架构的改变 11
1.3.2 将OpenCV2代码升级到OpenCV3报错时的一些策略 12
1.4 OpenCV的下载、安装与配置 14
1.4.1 预准备:下载和安装集成开发环境 14
1.4.2 及时步:下载和安装OpenCV SDK 15
1.4.3 第二步:配置环境变量 16
1.4.4 第三步:工程包含(include)目录的配置 17
1.4.5 第四步:工程库(lib)目录的配置 21
1.4.6 第五步:链接库的配置 22
1.4.7 第六步:在Windows文件夹下加入OpenCV动态链接库 25
1.4.8 第七步:最终测试 26
1.4.9 可能遇到的问题和解决方案 27
1.5 快速上手OpenCV图像处理 28
1.5.1 及时个程序:图像显示 29
1.5.2 第二个程序:图像腐蚀 30
1.5.3 第三个程序:图像模糊 31
1.5.4 第四个程序:canny边缘检测 32
1.6 OpenCV视频操作基础 34
1.6.1 读取并播放视频 34
1.6.2 调用摄像头采集图像 35
1.7 本章小结 38
第2章 启程前的认知准备 39
2.1 OpenCV官方例程引导与赏析 40
2.1.1 彩色目标跟踪:Camshift 41
2.1.2 光流:optical flow 42
2.1.3 点追踪:lkdemo 43
2.1.4 人脸识别:objectDetection 43
2.1.5 支持向量机引导 44
2.2 开源的魅力:编译OpenCV源代码 45
2.2.1 下载安装CMake 45
2.2.2 使用CMake生成OpenCV源代码工程的解决方案 46
2.2.3 编译OpenCV源代码 50
2.3 “opencv.hpp”头文件认知 53
2.4 命名规范约定 54
2.5 argc与argv参数解惑 56
2.5.1 初识main函数中的argc和argv 56
2.5.2 argc、argv的具体含义 57
2.5.3 Visual Studio中main函数的几种写法说明 58
2.5.4 总结 59
2.6 格式输出函数printf()简析 59
2.6.1 格式输出:printf()函数 59
2.6.2 示例程序:printf函数的用法示例 60
2.7 智能显示当前使用的OpenCV版本 61
2.8 本章小结 61
第3章 HighGUI图形用户界面初步 63
3.1 图像的载入、显示和输出到文件 64
3.1.1 OpenCV的命名空间 64
3.1.2 Mat类简析 64
3.1.3 图像的载入与显示概述 65
3.1.4 图像的载入:imread()函数 65
3.1.5 图像的显示:imshow()函数 66
3.1.6 关于InputArray类型 67
3.1.7 创建窗口:namedWindow()函数 67
3.1.8 输出图像到文件:imwrite()函数 68
3.1.9 综合示例程序:图像的载入、显示与输出 70
3.2 滑动条的创建和使用 73
3.2.1 创建滑动条:createTrackbar()函数 73
3.2.2 获取当前轨迹条的位置:getTrackbarPos()函数 76
3.3 鼠标操作 76
3.4 本章小结 80
第二部分 初探core组件 83
第4章 OpenCV数据结构与基本绘图 85
4.1 基础图像容器Mat 86
4.1.1 数字图像存储概述 86
4.1.2 Mat结构的使用 86
4.1.3 像素值的存储方法 88
4.1.4 显式创建Mat对象的七种方法 89
4.1.5 OpenCV中的格式化输出方法 91
4.
前言
计算机视觉是一个近几年来日臻成熟的领域。随着运算性能强劲而又价格实惠的计算设备的不断问世,创建复杂的图像应用从未像今天这般容易。OpenCV在计算机视觉领域扮演着重要的角色,它是一个基于开源发行的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。自1999年问世以来,OpenCV已经被计算机视觉领域的学者和开发者视为工具,并成为了计算机视觉领域最有力的研究工具之一。
OpenCV最初由Intel的一个小组进行开发。在一系列的beta版本后,OpenCV 1.0正式版本终于在2006年10月19日。
2009年10月1日,OpenCV 2.0问世,它带来了全新的C 接口,将OpenCV的能力无限放大。在2.0的时代,OpenCV增加了全新的平台支持,包括iOS和Andriod,通过CUDA和OpenCL实现了GPU加速,为Python和Java用户提供了接口,基于Github和Buildbot构建了充满艺术感的持续集成的系统,所以才有了被全世界的很多公司和学校所采用的稳定易用的OpenCV 2.4.x。
2014年8月21日,OpenCV 3.0 Alpha,它带来了全新的项目架构的改变,宣告了计算机视觉新时代的来临。和其他大型项目一样,OpenCV3抛弃了整体统一架构,使用内核 插件的架构形式,让自身主体更加稳定,而附加的库则可以更加灵活多变,以保持高速的发展与迭代。
本书源自于笔者在CSDN上连载的名为“OpenCV入门教程”的系列博客文章,自2014年2月24日发表及时篇以来,得到了广大OpenCV爱好者的广泛关注与支持,累计阅读量突破了40多万人次。不少读者强烈希望将这些内容集结成书,并加入更多新的内容。于是,经过笔者半年的笔耕不辍,便有了现在这本书的诞生。
作为一本入门级的OpenCV编程教材,本书以详细注释的程序代码为主线,以新版OpenCV最核心的core、HighGUI、improc和feature2d这4个组件的相关函数、类和数据结构为出发点,详细讲解了学习新版本OpenCV中会遇到了各种问题,并提供了详尽的实战代码作为参考。本书的写作初衷是让更多的使用者能熟练使用采用新版C 接口的OpenCV2或OpenCV3,了解OpenCV2和OpenCV3的诸多细节上的区别,以推动新版OpenCV在世界范围内的普及。
本书的内容安排
本书分为4个部分、11个章节,现将内容梗概列举如下。
第1章 邂逅OpenCV:介绍OpenCV的周边概念,分析OpenCV的基本架构,讲解OpenCV3的新特性。本章重点讲解了OpenCV的下载、安装与配置过程;在配置完成后,带领大家正式领略OpenCV的魅力,讲解了4个OpenCV图像处理小程序,并指导大家学习如何使用OpenCV操作视频和调用摄像头。
第2章 启程前的认知准备:进行OpenCV官方例程的引导学习与赏析,讲解如何编译OpenCV的源代码,并引入了对一些周边概念的认知。
第3章 HighGUI图形用户界面初步:对图像的载入、显示和输出到文件进行详细地分析,讲解OpenCV中滑动条的创建和使用,以及如何用鼠标进行交互操作。
第4章 OpenCV数据结构与基本绘图: 讲解OpenCV中常用的数据结构以及基本的绘图操作。
第5章 core组件进阶:讲解core模块的一些进阶知识点,如操作图像中的像素、图像混合、分离颜色通道、调节图像的对比度和亮度、进行离散傅里叶变换,以及输入输出XML和YAML文件。
第6章 图像处理:学习各种利用OpenCV进行图像处理的方法,包括属于线性滤波的方框滤波、均值滤波与高斯滤波,属于非线性滤波的中值滤波、双边滤波;两种基本形态学操作——膨胀与腐蚀;5种高级形态学滤波操作——开运算、闭运算、形态学梯度、顶帽以及黑帽;此外,还有漫水填充算法、图像金字塔、图像缩放、阈值化。
第7章 图像变换:讲解多种类型的图像变换方法。包括利用OpenCV进行边缘检测所用到的canny算子、sobel算子,Laplace算子以及scharr滤波器;进行图像特征提取的霍夫线变换、霍夫圆变换,重映射和仿射变换以及直方图均衡化。
第8章 图像轮廓与图像分割修复: 讲解如何查找轮廓并绘制轮廓,如何寻找物体的凸包,使用多边形来包围轮廓,以及计算一个图像的矩。此外还介绍了分水岭算法和图像修补操作的实现方法。
第9章 直方图与匹配:讲解图像直方图相关的编程技巧,以及直方图对比、反向投影和模板匹配技术。
第10章 角点检测:讲解Harris角点检测和Shi-Tomasi角点检测,以及一种亚像素角点检测方法。
第11章 特征检测与匹配:使用OpenCV2讲解并实现了SURF、SIFT和ORB特征检测方法,并在FLANN特征匹配的基础上,进一步实现了利用Homography映射来找出已知物体。
适合阅读本书的读者
研究计算机视觉以及相关领域的在校学生和老师
本书拥有详实的内容,注释详尽的代码,会是助你通过OpenCV来研习计算机视觉理论、撰写论文、通过毕业设计、完成科研项目的得力工具。同时,本书适合作为大学计算机视觉课程的教学用书。
初次接触OpenCV、有一定C/C 编程基础的研究人员
作为一本定位为快速入门新版OpenCV标准的编程教程,本书需要的仅仅是一些简单的C/C 编程语言基础。如果你已经具备了这些基础,并对计算机视觉感兴趣,那么本书正是为你所准备的。
已经有过OpenCV1.0编程经验,想快速了解并上手OpenCV2、OpenCV3编程的计算机视觉领域的专业人员
如果你曾经使用过OpenCV1.0,或者研读过OpenCV1.0时代的经典著作《Learning OpenCV》,本书会让你倍感亲切。你会发现新版OpenCV带了更多强大和便利的特性,让你事半功倍,如虎添翼。
想拥有一本新版OpenCV接口工具书的计算机视觉爱好者
本书中将自OpenCV2以来(包括OpenCV3)的常用类和函数进行了详细地讲解,并在附录中提供了“书本核心函数清单”以便检索。你会在书中快速查找到你需要用到的函数、数据结构和类的用法。
想拥有海量的详细注释的OpenCV2、OpenCV3示例程序代码的OpenCV爱好者
本书包含OpenCV2版的95个书本主线示例程序源代码、21个附赠示例程序源代码,OpenCV3版的95个书本主线示例程序源代码。OpenCV2、OpenCV3两版代码提供分开下载。这些程序代码都经过详细而有条理的注释,并提供可以独立运行的.exe文件供快速查看程序效果,方便查看和检索。你会在海量的示例程序中找到你需要的参考代码,从而加速你的研究和学习。
图像处理、计算机视觉领域的业余爱好者
海阔凭鱼跃,天高任鸟飞,计算机视觉领域的宝库任你探索。
开源项目爱好者
OpenCV作为一个免费并开源代码开发的计算机视觉代码库,有总计上百万行的源代码供你研究学习,本书将是引导你学习它们的良师益友。
本书的示例程序说明
本书的示例程序最初都在OpenCV2.4.9(2014年4月15日面世)版本下开发,书稿初版也是基于OpenCV2.4.9而写。在书稿写作和修订过程中,恰逢OpenCV3.0 Alpha(2014年8月21日)和OpenCV3 Beta(2014年11月11日)的,所以本书在审校和修订过程中(2014年12月1日),决定站在浪潮之巅,以OpenCV2为主,加入OpenCV3的诸多特性,让这本书可以同时胜任OpenCV2和OpenCV3两个版本教材的角色。这也是为什么本书会有OpenCV2和OpenCV3两个独立版本的示例程序的原因。
两个版本、详细注释的100多个示例程序源代码是本书的灵魂,现将示例程序的相关情况概括如下。
本书包含OpenCV2版的95个书本主线示例程序源代码、21个附赠示例程序源代码,以及OpenCV3版的95个书本主线示例程序源代码。
OpenCV2、OpenCV3两版代码提供分开下载。
OpenCV2版的示例程序在Windows7 64位旗舰版、Visual Stuido 2010 、OpenCV2.4.9的环境下开发与测试,理论上支持OpenCV2系列的所有版本的编译运行。
OpenCV3版的示例程序在Windows7 64位旗舰版、Visual Stuido 2010 、OpenCV3.0 beta的环境下开发与测试,理论上支持目前已经的OpenCV3全版本。
程序源代码都经过详细而有条理的注释。
额外提供可以独立运行的.exe文件供快速查看程序效果,并方便检索。
本书配套示例代码的下载方式有以下几种。
扫描本书
之前在图书馆借的,觉得不错,趁着打折买来看看
纸书不错!纸书不错!纸书不错!纸书不错!纸书不错!
内容还是很不错的,很实用!当当的活动也很给力,等了那么久终于等到了这样的活动!
很实惠的书,openCV真是好呀,运行效率高,图像处理的精品
这本书写的一般,内容有好多错误。理论的内容较少,基本都是程序
不错,略贵,网上有这个博客,喜欢纸质书的可以选择哈
是一本好书,是正版的,快递很快,服务很好,很满意。
openCV,图像处理,现在在学习中,这本书里将的不是很难,我觉得很容易理解就是了。
包装精美,发货很快,这次活动200-100很给力!
很好的一本书,针对最新版本的opencv,学习中
编程入门不二之选!!!opencv用起来越来越得心应手了
作为一本入门级的书,这本算是比较详细了,注释也很详细,还有2.0和3.0版本的源代码
不知为何书本没有膜包着?当当网卖的二手货吗?就这本书来说,对于入门者来说真的很好用。虽然完好无损但是不像新书啊
书不错,包装挺好,就说个人基础差,看起来比较费力
还可以把!我也不知道,没啥都有评论这么多个字呢
很好,看完了,更多的还是入门级的东西,深入得自己下功夫了。
刚买来大概摸了一下纸质,感觉还好,就是包装的不太好,总体来说,比较满意的一次购物
opencv很好的一本书,看了作者的介绍,更是让我佩服,好好学习。
书的小错误有点多,有些地方有重复,逻辑也有时候混乱不清,一些专有名词经常变动。不过,用于快速上手opencv3已经足够了。
很棒的介绍计算机视觉的书籍,内容很详尽。书本配送时包装的很好,很细心咯。
因为运输问题书的封面褶皱,内容还不错,纸质也不错。
正版书 有助于opencv新版本的理解 例子全面
做图像处理的入门书籍,介绍得很详细,正版书籍,不错!
OpenCV本来书就不多,这本的确不错,内容等各方面都很好。值得购买。
书不错纸质的硬度排版都很好。但是收到书的时候发现包装只是一层很薄的塑料袋而且还破损了书角有些折损倒是不影响。但还是希望能注意包装否则很容易弄坏的。
星云,后,网络浅墨。微软领域最具价4值Y专D家(),中国年度十大杰出博客作6者,南京航空航天大学年度D十大OP8ENCV3编程6
买来写论文用,老师说不让写机器视觉编程的部分。那就算了,自己以后学着玩用吧
OPENCV3编程入门启程前的认知4Q准66备官方例程引导与SI赏析彩色Y目标Q跟踪:光流:10点追踪:人脸识别Q:支W持向量机引导开源的魅力:编8OPENCV3编程入门OPENCV3编程入门OPENCV