作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验。
刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了C++和Java的基础了。不过先声明一下,两种语言我都学得不怎么样,囧~既然你想学C++版的OpenCV的API,那就要掌握C++的基础知识,特别是类、继承方面的基本原理,当然要求不是很高,理解就行。我说有Java基础,不是让你学Java,而是掌握一种查API手册的习惯和能力,就是,遇到不懂的类或函数(方法),通过查手册了解。我的这种能力是从Java课上学到的,故在这里赘述。
拿到的第一本书叫《学习OpenCV(中文版)》,这本书是C语言版的,比较经典了。说实话,个人觉得对我的帮助不是很大。除了让我学会了读取图像和视频,还有知道一些图像处理的函数之外,其他倒没有什么。不过里面的原理倒是介绍的不错,不过对于初学者来说,可能效果不是那么好。因为里面涉及的东西太多,感觉吸收有压力。
上面是C语言版的,学着不方便。关于C++版的学习,经过摸索,强烈建议到OpenCV中文网站http://www.opencv.org.cn/学习OpenCV。这个网站有个“中文教程”子模块(http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html),跟着这个教程,一步步的学,基础就可以打牢了。这个教程很好,从安装OpenCV到各个模块的学习,都有简明扼要的讲解和例子源代码(很多可以从OpenCV自带例程中找到)。有些函数如果不熟悉,可以到“中文文档”子模块(http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html)去查。当然,你可以在论坛上注册个帐号,和别人交流等等。推荐一本书《OpenCV2计算机视觉编程手册》张静,科学出版社。(opencv2主要是针对C++版的)
总的来说,学习OpenCV的时候,切忌一下几点:
有一定的C++基础,会查阅API手册;
学会安装配置开发环境;
针对各个模块学,核心模块必学(特别是矩阵处理),基础的图像处理也要学,其他结合项目学;
边学边动手,一定要敲代码,看例程;
遇到问题,查手册,上论坛,网上找资源。。。
好吧,只能帮你到这儿了,祝你成功~:)(P.S.夜深了,这可是我一个字一个字敲的,呜呜~)
感谢你……感谢~!《OpenCV2计算机视觉编程手册》