OpenCV2计算机视觉编程手册

出版社:科学出版社有限责任公司
出版日期:2013-6-25
ISBN:9787030375810
作者:Robert Laganiere
页数:260页

章节摘录

版权页:   插图:   作用原理 在之前的秘诀中,我们学习到能够从一组特征点的匹配中估算出与两幅图像相关的基础矩阵。精确地说,这组匹配仅包含高质量的匹配。然而,在实际应用中,很难保证通过比较特征点描述子得到的匹配集是完全相同的。因此我们将使用RANSAC(RANdom SAmpling Consensus)策略来进行基础矩阵的估算。 RANSAC算法的目的是从包含异常值的数据集中估算出给定的数学元素。基本原理是随机地选取一些数据点,并且仅用它们来进行估算。选择的数据点的个数应当是可用于进行估算的最小数。对于基础矩阵而言,8个匹配是最小数(事实上可以是7,但是8个点的线性算法计算更迅速)。一旦从这随机的8个匹配中算出基础矩阵,集合中所有剩下的匹配都将与矩阵对应的极性约束进行测试。我们找到所有满足该约束的匹配,它们对应的特征非常靠近极线。这些匹配组成了这个基础矩阵的支持集合。 RANSAC算法背后最主要的想法是支持集合越大,得到正确矩阵的可能性就越大。显而易见的,如果一个(或多个)随机选择的匹配是错误的,那么得到的基础矩阵也是错误的,于是它的支持集合应当很小。这个过程会重复数次,最后我们保留最大支持集合的矩阵作为最合适的。 因此,我们的目标是多次随机挑选8个匹配,最终能够得到8个足够好的匹配提供我们一个较大支持集合。根据完整数据集中错误匹配的个数,挑选到8个正确数据的概率会不同。然而我们值得挑选的次数越多,我们从中得到至少一个优质匹配集合的概率就越大。更精确地,如果假设集合包含n%正确值,那么同时选中8个正确匹配的概率是8n。因此,包含至少一个错误匹配的概率是(1—8n)。如果我们挑选k次,至少出现一次包含8个正确结果的概率是1—(1—8n)k。这便是置信概率C,我们希望它尽可能地高。因此,当运行RANSAC算法时,我们需要确定k的数量以得到给定的置信等级。 在CV::findFundamentalMat函数中使用RANSAC算法时,需要提供两个额外的参数。第一个是置信等级,它决定迭代的次数。第二个是归类为正确的点离极线的最大距离。因此,该函数返回一个字符类型的std::vector,标志着对应的匹配被识别为outlier(0)还是inlier(1)。 初始数据集中优质匹配的数量越大,RANSAC给出正确基础矩阵的概率也越高。因此我们在调用CV::findFundamentalMat之前便对数据集使用了多个滤波器。当然,你可以选择跳过其中的一些步骤。这仅仅是如何在计算复杂性、最终匹配数目以及所需的置信等级之间进行平衡的问题。

内容概要

加拿大渥太华教授,于1996年获得蒙特利尔INRS-Telecommunications博士学位。他是计算机视觉领域的研究员,兴趣包括食品分析、智能视觉监控,以及基于图像的建模。他是VIVA实验室的联合创始人,同时还是iWatchLife(一家提供云端视频监控服务的公司)的首席科学家。他与别人合著了Object-oriented SoftwareEnginieering一书,由McGraw-Hill于2011年出版。

书籍目录

第 1 章接触图像
1.1 引 言 ……………………………………………………………………………………1
1.2 安装OpenCV库……………………………………………………………………………1
1.3 使用MS VisualC++创建OpenCV工程……………………………………………………4
1.4 使用Qt创建OpenCV项目…………………………………………………………………12
1.5 载入、显示及保存图像…………………………………………………………………18
1.6 使用Qt创建GUI应用……………………………………………………………………22
第 2 章操作像素
2.1 引 言……………………………………………………………………………………29
2.2 存取像素值………………………………………………………………………………30
2.3 使用指针遍历图像………………………………………………………………………33
2.4 使用迭代器遍历图像……………………………………………………………………40
2.5 编写高效的图像遍历循环………………………………………………………………43
2.6 遍历图像和邻域操作……………………………………………………………………46
2.7 进行简单的图像算术……………………………………………………………………50
2.8 定义感兴趣区域…………………………………………………………………………53
第 3 章基于类的图像处理
3.1 引 言……………………………………………………………………………………57
3.2 在算法设计中使用策略(Strategy)模式…………………………………………57
3.3 使用控制器(Controller)实现模块间通信………………………………………63
3.4 使用单件(Singleton)设计模式……………………………………………………67
3.5使用模型-视图-控制器(Model-View-Controller)架构设计应用程序…………70
3.6 颜色空间转换…………………………………………………………………………73
第 4 章使用直方图统计像素
4.1 引 言……………………………………………………………………………………77
4.2 计算图像的直方图……………………………………………………………………77
4.3 使用查找表修改图像外观……………………………………………………………84
4.4 直方图均衡化…………………………………………………………………………88
4.5 反投影直方图以检测特定的图像内容………………………………………………89
4.6 使用均值漂移(Mean Shift)算法查找物体………………………………………95
4.7 通过比较直方图检索相似图片………………………………………………………99
第 5 章基于形态学运算的图像变换
5.1 引言……………………………………………………………………………………103
5.2 使用形态学滤波对图像进行腐蚀、膨胀运算………………………………………103
5.3 使用形态学滤波对图像进行开闭运算………………………………………………107
5.4 使用形态学滤波对图像进行边缘及角点检测………………………………………110
5.5 使用分水岭算法对图像进行分割……………………………………………………116
5.6 使用GrabCut算法提取前景物体……………………………………………………121
第 6 章图像滤波
6.1 引 言…………………………………………………………………………………125
6.2 使用低通滤波器………………………………………………………………………126
6.3 使用中值滤波器………………………………………………………………………130
6.4 使用方向滤波器检测边缘……………………………………………………………132
6.5 计算图像的拉普拉斯变换……………………………………………………………138
第 7 章提取直线、轮廓及连通区域
7.1 引 言…………………………………………………………………………………143
7.2 使用Canny算子检测轮廓……………………………………………………………143
7.3 使用霍夫变换检测直线…………………………………………………………… 146
7.4 用直线拟合一组点…………………………………………………………………156
7.5 提取连通区域的轮廓………………………………………………………………160
7.6 计算连通区域的形状描述符………………………………………………………164
第 8 章检测并匹配兴趣点
8.1 引 言…………………………………………………………………………………167
8.2 检测Harris角点……………………………………………………………………167
8.3 检测FAST特征………………………………………………………………………177
8.4 检测尺度不变的SURF特征…………………………………………………………180
8.5 描述SURF特征………………………………………………………………………185
第 9 章估算图像间的投影关系
9.1 引 言…………………………………………………………………………………189
9.2 相机标定……………………………………………………………………………191
9.3 计算一对图像的基础矩阵…………………………………………………………198
9.4 使用随机采样一致算法(RANSAC)进行图像匹配………………………………202
9.5 计算两幅图之间的单应矩阵………………………………………………………211
第 10 章处理视频序列
10.1 引 言………………………………………………………………………………215
10.2 读取视频序列………………………………………………………………………215
10.3 处理视频帧…………………………………………………………………………219
10.4 写入视频序列………………………………………………………………………228
10.5 跟踪视频中的特征点………………………………………………………………233
10.6 提取视频中的前景物休……………………………………………………………239

编辑推荐

《OpenCV2计算机视觉编程手册》是一本循序渐进的计算机视觉指导手册,给予OpenCV2代码库中包含高级特性的C++接口。《OpenCV2计算机视觉编程手册》介绍了OpenCV2中众多的视觉算法。你将学会如何读、写、创建及操作图像,领略图像分析中常用的技术,并了解如何使用C++高效实现。cvchina.info推荐,计算机视觉编程领域的最新力作,50个秘诀,让你轻松进阶。

作者简介

《OpenCV2计算机视觉编程手册》以案例的形式介绍OpenCV 2.X的新特性和C++新接口,案例中包含具体的代码与详细的说明。本书很好地平衡了基础知识与进阶内容,要求读者具有基础的C++知识。本书既适合想要学习计算机视觉的C++初学者,也适合专业的软件开发人员。本书可作为高等院校计算机视觉课程的辅助教材,也可以作为图像处理和计算机视觉领域研究人员的参考手册。


 OpenCV2计算机视觉编程手册下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     外观看上去挺高端大气的,还是科学出版社出版,翻开目录看看内容也都是自己熟悉的,感觉很亲切!但是!看完之后真他妈的失望,什么玩意嘛?关键的点都没交代清楚,说明的文字又少,好像想说的内容还挺多,经常引出一个疑问就没下文了,卧槽!什么意思?根本看不懂!翻译的他妈的太不用心了!秘诀秘诀,秘诀你大爷!!!
  •     刚刚完整的读完《OpenCV2计算机视觉编程手册》,认真阅读了每一行代码,虽然中间有些间断,但读完后真心感觉不错。可能是自己学过一些图像处理的知识,对于理论部分的理解不很陌生,更加侧重于阅读如何应用OpenCV函数和如何构建类。在学习这本书的过程当中,作者没有拘泥在图像处理算法的讲解,而是将更多的精力放在如何帮助读者理解每行代码上面,添加了丰富的注释,阅读代码的同时仿佛是在和作者进行交流,理解代码编写的框架。对于学习编程的同学并不枯燥。虽然书上写出的是主干代码,但是更加侧重于opencv的使用和算法的实现,当读者阅读完整体代码时就会懂得如何应用这些代码。所以,建议大家学习这本书的时候需要把大量的精力放在代码的学习上。对于想学习图像处理的同学,这本书可能并没有覆盖所有的知识点,但是正如封面所写,“快速解答常见问题”。对于初学者,面对opencv中文版资料较少的今天,这本书是本不可多得的好书,认真学习里面的代码,能够帮助敲开opencv的学习大门,而真正学习opencv的道路还任重道远。非常感谢作者!

精彩短评 (总计27条)

  •     书还不错,就是前面建QT工程教学 不够详细,搞了很长时间
  •     很不错的入门书
  •     对于入门来说还行。。。。。。。。。。。。。。
  •     嗯 很好的一本学习opencv的书籍 值得入手
  •     可以扔到书架上,写c++的时候可以查查
  •     过于简单 例子也不深入 个人认为没必要在这本书中讲究设计模式
  •     实例较少,理论东西还好
  •     失望,什么玩意嘛?根本看不懂!翻译的他不用心了!秘诀秘诀,秘诀你大爷!!!
  •     虽然有不少翻译错误。但是依然是本好书。 有能力还是要读英文的呢。我是看不懂中文的就开英文版查。
  •     屎一样的书,完全就是坑钱的,薄薄的一本,还是2010的
  •     比较适合初学者,介绍的内容都是图像处理中比较实用的方法,有像素操作,直方图统计,形态学运算,图像滤波,提取直线,轮廓以及连通区域,检测并匹配兴趣点,估算图像投影关系,以及处理视频序列等。每一个理论都采用分析+实例的方法,让初学者很容易对知识点既能理解理论又通过程序实现,对书里面的知识点都能有个比较好的理解。 但是书里面介绍的程序只是opencv的一小部分函数,以及图像处理的最基本得内容,介绍只停留在表面,实例比较局限,解决实际问题的时候还是需要在查询其他资料,深入理解理论。 总体来说一句话非常适合初学者入门。
  •     印刷和纸都一般,挺薄的不值定价
  •     通熟易懂,闲来翻看。
  •     书是帮同学买的,他看了觉得还不错,那我也就放心了。。。
  •     大多是C++接口,初学者建议买《学习opencv》
  •     作者尝试把示例和理论都包罗进来,然而两方面做的都不太好。
  •     很不错的opencv中文图书
  •     内容很好,翻译太搓
  •     直接看官方手册就行了,不需要看这本书
  •     很不错 都是实例比较好理解掌握
  •     接触OpenCV(Open Source Computer Vision)的第一本书~ OpenCV是一个开放源代码的图像及视频分析库,包含500多个优化过的算法。
  •     个人认为此书适合有一定opencv和c++基础的人看。此书内容较少,只是选择了几个面进行讲解,内容详尽程度和深度都不及《学习opencv》。但是,对于用惯了C风格的人来说,此书也还是值得一看。
  •     比较实用的书,尤其建议初学者实用
  •     印刷质量不错,但翻译者不负责任,错误百出,句子颠三倒四,连错别字也很多,真服了
  •     相当于综合地学了下OpenCV的API
  •     自己的书,必须五颗星
  •     4.3节开始比google翻译的还烂,翻译不负责任定价倒不含糊。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024