推荐序

计算机视觉是一门实践性很强的课程,虽然已经有了不少教科书,但大多数都只重视其中的理论和算法,很少有实践指导书。因而对于学习者而言,如果希望在实践中学习,往往需要编写大量的程序。在这方面,本书的出版可以算是一个有益的补充,相信本书将成为计算机视觉学习者的一个重要参考。

作为一本面向计算机视觉编程的书,本书涉及了这一学科中相对成熟并且被以往实践验证有效的部分典型算法,因而具有很好的实用性。例如第2章描述子部分选择了Harris角点检测器和SIFT描述子及其实现加以介绍;第3章则以全景图的创建为例,给出了RANSAC的实现;第9章图像分割中讨论了GraphCut的实现等。这些方法大多数具有很好的通用性,因而为读者提供了一种实现范例。

本书的另一个特点是对介绍的单一方法,通过综合运用提升学习者灵活应用这些方法的能力。例如第4章给出的增强现实的例子,以及第8章给出的图像校正的例子。这些例子能够帮助进一步提升学习者对前述方法的感性认识。

与早期计算机视觉领域多数程序都是由C/C++写就的情形不同。随着计算机硬件速度越来越快,研究者在考虑选择实现算法语言的时候会更多地考虑编写代码的效率和易用性,而不是像早年那样把算法的执行效率放在首位。这直接导致近年来越来越多的研究者选择Python来实现算法。与此同时,Python的开放性使不同领域的研究者能够有机会在Python中加入他们需要的特性,甚至可以纳入Python的标准库,这也大大吸引了众多研究者对Python的参与。

本书的第三个特点是提供了与OpenCV接口的介绍。这为利用OpenCV中的资源提供了方便的途径。

今天在计算机视觉领域,越来越多的研究者使用Python开展研究。本书中文版的出版一方面能够鼓励更多的研究者采用这一语言,另一方面则为Python的学习者提供了一种尝试不同领域算法的机会。

2014年4月21日