译者的话:本章虽然只是概述,但对于我来说翻译起来已经很费劲,希望读者能够大方地提出修改意见,一起来完善这个工作,为广大OpenCV使用者提供帮助。
本书是一本指导读者如何使用计算机视觉开源库(Open Source Computer Vision Library,简称OpenCV)的指导书,同时向读者介绍一些计算机视觉领域的背景知识,以使读者能够更有效地使用OpenCV库。
目标
目前计算机视觉是一个快速发展的研究领域,一方面是由于更多便宜而且性能高的摄像机的出现,同时依赖于处理器更加强大的处理能力,当然也离不开计算机视觉算法的日渐成熟。而OpenCV本身通过使数以万计的人们更有效地进行计算机视觉方面的研究在这一领域的发展中起到一个重要的作用。本书的目标是:
-
用更细节的文档阐明函数调用的实际意义和如何使用这些函数;
-
快速地是读者能够直观的理解一些计算机视觉算法;
-
给读者一些概念,该使用何种算法和何时使用这些算法;
-
通过一些示例代码有力地帮助读者开始实现一些计算机视觉和机器学习的算法;
-
引导读者在遇到困难时解决一些更深层次的问题。
目标读者
本书细致地介绍并解释了OpenCV库中包含的工具,提供了示例代码。因此本书对各类读者都会有很大的帮助。
专业人士
对需要快速开发计算机视觉系统的专业人士,示例代码提供了一个框架,可以基于此快速地开始开发。我们对于算法思想的介绍能够快速告诉读者如何工作。
学生
本书直观详细的文档和示例代码能使学生在计算机视觉方面更快地起步,开发更多有趣的课堂项目,并最终在这一领域开始新的研究。
教师
计算机视觉是一个快速向前发展的领域。我们发现在正式的教学过程中让学生阅读一些前沿的文献,并鼓励学生开始一些课堂项目来快速提高,对学生有很大好处。
爱好者
计算机视觉很有趣,本书告诉你如何去玩。
本书不是
本书不是正式的教材。我们确实在很多地方涉及到数学的细节,但这些都是为了发掘在算法背后的本质或者是让读者明白在这些算法中的一些假设所暗含的意义。
本书不针对理论研究者因为它更带有一种应用的特性。本书一定能提供一个较为全面的帮助,但并不真的计算机视觉中的某个特定的研究。也就是说,作者相信,在阅读这个解释之后,一个学生不仅能学习到理论知识,而且能够记得更牢。因此,这本书可以对理论课有一个很好的补充,而且是以工程为主的课程的优秀指导书。
关于书中的程序
书中所有示例程序都是基于OpenCV 2.0版本。代码完全可以在Linux或者Windows下运行,在OS-X下可能也可以运行。源代码可以网站(http://www.oreilly..com/catalog/9780596516130)下载。OpenCV可以在网站(http://sourceforge.net/projects/opencvlibrary) 下载。OpenCV一直在发展,官方更新每年进行一到两次。你可以在CVS服务器上获得代码的更新。
CVS server (http://sourceforge.net/cvs/?group_id=22870)。
预备知识
对书中大部分内容来说,读者只需要了解如何使用C或者C++编程即可。很多数学相关的部分都是选学的。数学部分牵涉到简单的代数和基础的矩阵只是,它们与最小二乘优化和一些基础知识,如高斯分布,贝叶斯决策,函数球道等。数学是算法的基础,读者可以跳过数学和算法描述部分,直接使用函数定义和示例代码来实现视觉应用程序。
如何更好地利用这本书
本书无需按顺序阅读。它可以作为一本手册来使用,当你需要是查找要用到函数;查看函数的描述以了解内里的原理。本书旨在更具指导性,它能通过告诉你如何和何时使用这些算法来让你理解计算机视觉的一些基本思想。
本书可以作为研究生或者本科生计算机视觉课的主要教材,基本的策略就是学生通过本书得到一些概要的了解,让后再通过其他更加专业的书籍或者论文来补充相关领域更多的知识。本书在每个章节的末尾都有练习题,用来帮助学生巩固知识并得到新的启发。
你可以用以下几种方法来阅读本书:
大杂烩
第一次浏览1-3章,然后根据你的需要专门阅读相应的章节。本书无需按顺序阅读,除了11-12章(校正和场景)以外。
循序渐进
每周两章,直至将1-12章在六周内阅读完毕。从项目出发,从所选择的研究领域出发,利用更多的书籍和论文来充实自己。
冲刺
根据你的能力以最快的速度浏览完本书,从1到12章。然后从项目出发,在所选择的领域进行更细节的学习。这可能比较适合专业人士,或者是高级的计算机视觉课程。
后面的内容主要是书中各种标号的介绍,由于翻译的格式本来与原文就不一致,所以也没有必要加上了。