以OpenCV2.4.13为例,介绍整个OpenCV开发包的构成
参考文献:《OpenCV算法精解:基于Python与C++ 》
解压缩所下载的OpenCV压缩包会有两个文件夹,分别为build和sources
sources
文件夹
从文件夹的名称就可以看出,“sources”是用来存放源码的,在其子文件夹“modules”下列出了OpenCV实现的各个模块,其中core
,highgui
,imgproc
是最基础的模块,也是依次学习OpenCV的起点。
core
模块实现了最核心的数据结构及其基本运算;highgui
模块实现了图像的读取、显示、存储等UI接口;imgproc
模块实现了图像处理的基础方法,包括图像的几何变换、平滑、阈值分割、形态学处理、边缘检测、频率域处理等。
对于图像处理的其他更高层次的方向及应用,OpenCV也有相关的实现。包括:
features2d
和nonfree
模块用于提取图像特征,其中nofree
模块实现了一些专利算法,如sift特征;objdetect
模块实现了一些目标检测的功能,如经典的基于Haar、LBP特征的人脸检测,基于HOG的行人、汽车等目标检测;stiching
模块实现了图像拼接功能;ml
模块实现了常见的机器学习算法,如支持向量机、神经网络、随机森林等;video
模块主要是针对视频处理的,如背景建模、运动物体跟踪、前景检测等
可以说,OpenCV几乎涵盖了计算机视觉领域的所有方向,已经成为计算机视觉领域学者和开发人员的首选工具。
build
文件夹
build
文件夹存放的是通过源码包编译好的文件。它也是部署OpenCV用到的主要文件夹,其中:
- 子文件夹
doc
下有两个最重要的学习OpenCV的文档,即:opencv2refman.pdf(函数手册,介绍了所有函数的声明及参数解释)和opencv_tutorials.pdf(函数使用实例); - 子文件夹
include
存放的是OpenCV的头文件; x64
和x86
存放的是针对64位和32位Windows系统编译好的.dll和.lib文件;python
子文件夹存放的是OpenCV Python API的动态模块;java
子文件夹存放的是Java API的JAR包。