我想学OpenCV,需要一些什么样的基础?
作为计算机视觉的开源库,OpenCV强大而实用,下面分享一下我学OpenCV的经验。
刚开始是由于大学生创新项目的原因,在大二的时候就开始接触,当时我已经有了c++和java的基础了。不过先声明一下,两种语言我都学得不怎么样,囧~既然你想学C++版的OpenCV的API,那就要掌握C++的基础知识,特别是类、继承方面的基本原理,当然要求不是很高,理解就行。我说有Java基础,不是让你学J***a,而是掌握一种查API手册的习惯和能力,就是,遇到不懂的类或函数(方法),通过查手册了解。我的这种能力是从J***a课上学到的,故在这里赘述。
拿到的第一本书叫《学习OpenCV(中文版)》,这本书是C语言版的,比较经典了。说实话,个人觉得对我的帮助不是很大。除了让我学会了读取图像和视频,还有知道一些图像处理的函数之外,其他倒没有什么。不过里面的原理倒是介绍的不错,不过对于初学者来说,可能效果不是那么好。因为里面涉及的东西太多,感觉吸收有压力。
上面是C语言版的,学着不方便。关于C++版的学习,经过摸索,强烈建议到OpenCV中文网站
opencvdoc/2.3.2/html/doc/tutorials/tutorials.html
opencvdoc/2.3.2/html/index.html
总的来说,学习OpenCV的时候,切忌一下几点:
有一定的C++基础,会查阅API手册;
针对各个模块学,核心模块必学(特别是矩阵处理),基础的图像处理也要学,其他结合项目学;
我想自学c++编程,有哪些书籍推荐?
入门书籍
《C++程序设计》,钱能
《易学C++》,潘嘉杰
《大话设计模式》,程杰
《C++编程规范:101条规则、准则与最佳实践》,刘基诚
进阶书籍
《C++程序设计语言》英文第四版,Bjarne Stroustrup
《C++ Primer 第5版(英文版)》,Stanley Lippman、Josee Laoie、Barbara Moo
《C++标准库:自学教程与参考手册(第2版)(英文版)》,Nicolai Josuttis
《C++ Concurrency in Action|C++ 并发实战》,Anthony Wiliams
《C和C++安全编码(第2版)(英文版)》,Robert Seacord
学c那我觉得应先了解一下c,毕竟c是在c的基础上做的一个扩展。如果说一开始就去学c++这个上手难度太高了。光是语法上的难点就太多了,第一本书用c primer plus这本书就很好,然后这本书弄完后,然后上手写一些程序,之后嘛,c++primer plus这本书也可以用起来。
c是面向过程,而c++在这基础上有面向对象的思想,可以先去了解面向对象是一个什么概念再来学习相关的东西。
但个人建议还是选j***a,Python这样的好,纯面向对向,而非c++这种。同时来说就业面也比c++好。
个人意见仅供参考