环境配置好后,接下来就是要通过Python编程学习使用OpenCV库中的函数和类。在正式学习之前,首先当然需要对其有个基本的认识。
环境:Windows XP(X86) Python 3.4 OpenCV3.1.0
一、几个重要链接
学习OpenCV,有几个网站是要知道的,这样可以让你学起来轻松些,当遇到一些小问题的时候,通过这几个网站一般可以得到解决。
在线帮助文档:https://docs.opencv.org/
OpenCV论坛:http://answers.opencv.org/questions/
OpenCV中文论坛:http://www.opencv.org.cn/
1.1 在线帮助文档
帮助文档是我们编程过程中非常重要的东西,它内容丰富和全面,是很好的学习资料。点击链接出现的界面如下图所示。
可以看到,大概分为四部分。
Nightly:是指软件的一种版本,该版本解决了最新BUG,缺点是性能不太稳定。作为入门学习,不太需要阅读这种在线帮助文档。
Doxygen HTML、Sphinx HTML、Javadoc HTML:此三部分差别不大,属于采用不同工具获得的帮助文档。仔细看可以发现,Javadoc HTML、Sphinx HTML主要是2.4版本的opencv帮助文档,而我们本次学习采用的是3.x,所以很明显,我们选择Doxygen HTML下的相应版本点击进去即可,我是opencv3.1.0(3.1.0后面括号的内容是压缩包,点击可以下载下来,win系统就下载zip,linux下载tar.xz),点击进去后,界面如下。
可以看到,帮助文档中介绍了opencv包括哪些模块,每个模块是什么内容。右上角的红框搜索功能,可以用来搜索你不熟悉的类或函数,查阅其基本使用方法和功能。现在拿waitkey函数为例,进行搜索,搜索结果如下:
可以看到,当参数为0时,就是窗口永远不关闭,为非零时,就是延迟delay ms后关闭窗口。以后碰到一个不熟悉的类或函数
,就要学会使用它,这里的介绍才是最全面的详细的。除了搜索功能还有索引功能,如下图所示。
在此我简单介绍一下,其他部分,建议自己可以都看看,浏览一下。
1.2 OpenCV论坛
论坛是个好地方,OpenCV论坛也不例外,在那里你可以发现大神,提出问题或解决问题。学习过程中总会碰到各种各样的问题和麻烦,又或者你想帮助他人解决问题并提升自己,那就多去逛逛论坛吧,中英文的OpenCV论坛在上面都已给出,点进去后的界面如下图所示。
二、OpenCV的知识
2.1 OpenCV的简介
OpenCV是计算机视觉库,涵盖很多算法,有很多模块,接下来简单介绍常见的几个模块,想知道其他模块,可以在帮助文档中找到。
core:核心功能模块。如基本的数据结构,数组的运算,opencvGL/openCL互操作等。
imgproc:图像处理模块。如图像滤波,几何变换,绘图功能,直方图等
highgui:高层图形用户界面模块。
video:视频分析模块。
calib3d:相机校正和三维重建模块。
features2d:二维特征模块。如特征检测与描述,特征匹配。
objdetect:目标检测模块。
ml:机器学习模块。
flann:多维空间中的聚类和搜索模块。
2.2 先修知识
学习新的知识,总会有一些先修知识,不然会影响该知识的学习。要想学习Python+OpenCV,也有一些先修知识。
Python编程:首先当然要会Python编程,如果你之前学过其他编程语言,学这个会简单许多。这门语言非常火爆,各大学习网站都有相应的视频教程可以跟着学,如网易云课堂(Python学习链接:http://study.163.com/course/courseMain.htm?courseId=378003,该学习视频仅供参考,建议根据自己喜爱选择),也可以买相应的书籍学习。如果想要刷题巩固知识,可以去牛客网找题目做。
numpy库:由于所有的OpenCV数组结构都转换成Numpy数组,目的是使得与其他使用Numpy的库(如SciPy和Matplotlib)更容易集成,所以学习OpenCV之前要熟悉使用numpy库,建议了解一下scipy和matplotlib。
图像处理理论知识:学习opencv前,要有一定的图像处理理论基础,Python+OpenCV的学习其实就是为了实践,在应用中加深对图像处理的理解,发现不足等。
三、总结
本章主要讲了一下学习前的准备工作,介绍了几个重要链接,目的是当你自己碰到问题时,能够尝试自己解决问题。