从被实验室推荐OpenCV到使用编程用了一个星期,感觉学习这个跟学习大多数程序工具是一样的,就是实践出真知。
1.首先是参考书,推荐你一本比较基础的,我觉得非常适合上手。
《OpenCV教程——基础篇》北航出版社
北航的虚拟现实实验室许多师生都在使用opencv,有相当多的经验,这书质量相当不错,简单易上手。附带的光盘中代码可靠性相当高,有些直接就是某些算法或问题的实现。
2.然后是学习方法。程序工具的学习与其他课程相当不同。如果为了考试,你大可不必理会这一套,根据考试科目的推荐教科书划书背重点就好了,再做几套习题,几套试卷,答答疑,分数一定不错。如果为了能够真正使用,就要求边学边用。
3.具体过程:
建议先总览全书,掌握OpenCV的框架和结构,结合绪论或是概述,了解OpenCV的使用情况和用途。一般书上会给出环境配置和需要下载的工具,请严格按照书上的要求做。书上推荐用VC++ 6.0,是有道理的,因为这个版本的VC有着相当广大的使用基础,CSDN,PUDN等论坛中都有大量的代码支持。而且国内外师生的使用经验也很丰富。我曾经使用VS 2008来完成,结果发现环境变量等配置远比这个要复杂,以后学习过程中出了莫名其妙的问题还要逐步排查。
建议根据章节了解每个局部功能,先正确运行书上的例子(光盘有代码)。再次基础上进行功能修改和消化,达到融会贯通。比如书上教会你opencv的图像格式,那么你需要重点考虑图像数据的读写操作,在此基础上试着插入算法,对图像进行修改(比如简单的翻转、反色等等)。这种方法保证了你吃透了每一个例子,并且能区分关键代码和通用代码,方便你以后代码融合使用。你不需要知道每一个函数的实现过程,你只需要知道每个函数的参数是什么,功能是什么,有什么特殊要求(比如图像格式,参数内存分配)。如果不清楚,除了可以参考SDK的说明文档,或者MSDN,也可以上百度知道或者自己写简单的剥离程序测试每个函数。
建议根据某个课题融合你所了解的方法,完成一个小小的项目。比如,你做个人脸检测或是行人检测。这些东西都有相当成熟的技术,大量的论文,实现方法五花八门。你不必被纷繁的论文所吓倒,吸收其优秀的算法思想,去其糟粕取其精,结合你自己的算法完成任务就行。这样,你可以在此基础上撰写你自己的论文,编写演示程序来支持你的论文,做实验程序来测试你的数据。如果你完成了这些步骤,可以说,你的opencv就算入门了。
以上都是我的个人见解,并不具有说服力,只是给喜欢学习程序设计的同学们交流一下。
有一本书叫Learning Opencv,也有相应的中文版,不过还是推荐看英文版。并不是说要整本书的读,而是作为一个参考,相当于字典一样。首先要非常清楚自己要做什么,需要用到哪些OPENCV中的方法,函数,然后对应目录到具体章节查找。上手的时候可能比较迷茫,不知道该如何做,可以先把头两章的例程试着运行一下,大概知道怎么操作,之后慢慢就会上手了。不过很多函数,算法第一次用确实会比较头疼,多试试,网上也有很多例程。
opencv很简单的,给你介绍本书,《opencv教程-基础篇》刘瑞祯的,很基础,刚开始不要看那么深奥的,到时候学得没兴趣了 ,有不懂的可以问我哦