OpenCV在视觉界可谓是无人不知,无人不晓了。关于OpenCV的参考资料不计其数,书籍也有很多(看这里http://opencv.org/books.html)。
OpenCV本身作为工具包,学习起来不应该有太大的难度,有难度的是去开发OpenCV。那么如何学习OpenCV呢?我想应该从本质出发,把视觉里面的基本问题搞清楚,知道其原理和解决方法,辅以基本的编程技能,等需要使用OpenCV快速解决问题的时候去参考它的官方API Reference。当然为了从整体上滤清思路,那一本入门小书,快速了解一下OpenCV的基本使用也是值得的。
大家都知道,视觉问题基本可以分为“低层语义,即图像处理层面;中层语义,特征提取和识别层面;高层语义,根据视觉进行行为识别之类”。显然OpenCV 2 Computer Vision Application Programming Cookbook这本书大多数集中在了“低层语义”,“中层语义”略有涉及。
纵观全书,首先介绍了OpenCV工具包的安装和基本使用,之后使用OpenCV进行一些基本的像素操作,然后在第3章穿插了一些设计模式的东西(主要是策略模式和单例模式)。接下来的章节则主要谈到了“直方图”,“形态学”,“图像滤波”,“边缘检测和轮廓提取”,“检测和匹配特征点”,“相机标定和估计图像的投影关系”,“视频处理和基本的追踪算法“。对应于OpenCV的module,则主要是”core;imgproc;highgui;video;calib3d;features2d“,其它的都鲜有涉及。
因此本书定位是一本cookbook,如果需要加强一下自己对OpenCV和C++(Qt)的驾驭能力,不妨抽时间参考一下。