OpenCV模块解析与构架图

引言

本节主要介绍OpenCV中C语言版(OpenCV2.0以下)和C++语言版(OpenCV2.2以上)各模块功能,以及构架图。

OpenCV模块

首先,我们介绍1.0至2,2版,OpenCV库划分为以下几个模块。


图1 OpenCV1.X库模块

  • CV :   主要OpenCV函数,即:核心函数库
  • CVAUX :  辅助函数库
  • CXCORE :  数据结构与线性代数库(包含CvPoint、CvRect、CvSize、CvMat及lpiImage等常用数据结构);
  • HIGHUI : GUI函数库(用户交互界面,如图像显示、接受鼠标键盘事件等。已经包含视频、摄像头简单操作);
  • ML :  机器学习函数库,包含模式分类和回归分析等;
  • CVCAM :视频图像处理模块(一般还需要安装DirectShow。此模块在2.0之后的版本好像不再包含,而直接使用highgui)。

在windows下较低版本(2.0以下)的OpenCV中包含此模块,一般用于处理和操作摄像头和视频流的跨平台模块,在windows下 被封装成.dll动态链接库,在Linux中被以so(共享库,和动态链接库类似)的形式使用。

然而,自从2.2版开始,OpenCV库便被划分为多个模块。这些模块编译成库文件后,位于lib文件夹中。

OpenCV模块解析与构架图_第1张图片

图2 OpenCV2.X库模块

  • opencv_core模块,其中包括库中核心函数结构,特别是基础的数据结构和算术函数
  • opencv_imgproc模块包含图像处理函数
  • opencv_highgui模块包含读写图像及视频的函数,以及操作图形用户界面函数。
  • opencv_features2d模块包含兴趣点检测子、描述子以及兴趣点匹配框架
  • opencv_calib3d模块包含相机标定、双目几何估算以及立体视觉函数。
  • opencv_video模块包含运动估算、特征跟踪以及前景提取函数与类
  • opencv_objdetect模块包括物体检测函数,如脸部与行人检测。

库中还有其他的工具模块,如机器学习(opencv_ml)、计算几何(opencv_flann),第三方代码 (opencv_contrib),废弃的代码 (opencv_legacy)及GPU加速度过的代码 (opencv_gpu).这些模块都有一个单独的头文件(位于include)

OpenCV2.X架构图

如下图所示:

OpenCV模块解析与构架图_第2张图片

参考资料

[1] Robert Laganiere ,"OpenCV 2 Computer Vision Application Programming Cookbook",Packt Publishing 2011.


关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.


你可能感兴趣的:(opencv,构架图,模块解析)