OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。
废话不多说,我就来讲讲OpenCV的使用和学习需要怎么做吧,大家觉得有道理的可以参考一下。
我理解的学习和使用的重点在四个方面:
第一点:需要对OpenCV的版本要有一个清晰的认识
OpenCV目前更新到了4.7.0版本,但是目前OpenCV3.x和OpenCV4.x都是比较常用的,但是3和4的版本差别比较大,所以经常有同学抄代码的时候编译报错,就像我昨天在做目标跟踪的时候,创建跟踪器,在OpenCV3.2之前的版本里面使用的方法是Tracker.create,但是在之后的版本API就变了,对于不同的算法创建的函数还不一样,例如KCF算法就是TrackerKCF_create这样,所以我们在使用OpenCV的时候需要对OpenCV的版本有一个比较清晰的认识。
第二点:需要对OpenCV的源码有一个基本的了解
要知道每个模块是做啥的,这样你才能知道怎么去调用这里面的算法。目前出版的OpenCV的图书基本上只对core模块、imgproc模块和highgui模块进行讲解,所以初学者很难找到一个系统的学习途径。但是去年出版了一本图书《学习OpenCV4:基于Python的算法实战》这本书对OpenCV的所有模块都进行了讲解,虽然里面的案例是以Python语言为主,但是在讲解每个算法的API的时候是将C++和Python两种语言都做了讲解,所以函数调用层面应该问题不大,这是国内外第一本系统讲解OpenCV所有模块的书,评价销量都很不错。
第三点:首先学习怎么去用
“学以致用”永远不是一句空话,对于公司来说,最重要的就是需要写出代码,解决实际问题,所以对于初学者来说,首先需要学习OpenCV包装的函数怎么去用,能解决什么实际的问题。
对于初学者来说,最头疼的问题就是环境搭建出错和代码运行出错,解决不了还极大的削减学习的信心,看书和博客经常就是从入门到放弃,没人指点真是很难受。
说到环境搭建的问题,还是要说一下***《学习OpenCV4:基于Python的算法实战》***这本书,这本书将Windows、Linux上的C++和Python开发环境搭建讲的清清楚楚,还有怎么通过源码编译的方式搭建环境都有清楚的讲解,让初学者不会被环境所卡。
还有就是这门课程也做了比较清晰的讲解,课程地址:
OpenCV入门精讲(C++/Python双语教学)
https://edu.csdn.net/course/detail/38039
该课程的优势如下:
1、C++与Python双语教学
Python语言是在计算机视觉中应用最多的一种语言,在工作中,深度学习模型的训练基本上都是使用Python语言编写的训练代码。OpenCV在这个过程中用于图像的预处理(例如图像读取、数据增强)和后处理,还可以用于显示处理的结果,功能强大,使用方便。
但是在功能的部署的时候,不管是部署在服务端还是PC端,开发语言基本上用的是C++,所以如何有效的使用OpenCV进行模型或者功能的部署尤为重要。
C++语言应用的好坏,在面试中可以看出一个面试者的工程实践能力的强弱,两种语言的开发掌握好了可以使工作如虎添翼。
2、全模块讲解
课程讲师也是图书**《学习OpenCV4:基于Python的算法实战》**作者,课程不仅采用双语教学,更是对C++的每个模块都做讲解,我们知道,很多的书其实只讲imgproc,如果你翻开一本书图像的形态学运算和图像滤波都是作为独立章节讲解的,那么这本书基本上就可以确定是只是讲解了imgproc模块,但是其他的模块在工作中也有很重要的作用。
3、讲解细致
本课程会从环境搭建开始讲解,环境搭建尤为重要。从我多年的授课经验总结来看,如果只是给了代码,很多的入门用户环境问题处理不好的话,后面的学习很难进行下去,甚至会丧失学习的信心。
4、讲义准备充分
讲义准备的充分细致,标识清楚明确,重点和疑难点突出。
第四点:其次学习算法原理
这个就不用我多说了,因为如果你上来先啃算法原理的话,大概率会从入门到放弃,即使你啃下来了,不自己动手写代码,还是不知道怎么去用,不知道这些算法怎么解决实际的工程问题。所以建议大家先学会怎么去用,可以选择上面的图书对照着课程学习,里面的案例讲的非常的清晰,相信大家不会觉得学得没有兴趣的。