OpenCV基本架构[OpenCV 笔记0]

最近正在系统学习OpenCV,将不定期发布笔记,主要按照毛星云的《OpenCV3编程入门》的顺序学习,会参考官方教程和文档。学习工具是Xcode+CMake,会对书中一部分内容更正,并加入cmakelist的内容。

书中大部分内容来自OpenCV文档,其实比较推荐官方文档和教程

OpenCV2.4.13: http://docs.opencv.org/2.4/index.html

OpenCV安装路径下的include文件夹包含opencv和opencv2两个文件夹。opencv文件夹包含OpenCV1的头文件,opencv2文件夹包含OpenCV2的头文件。

OpenCV2模块

opencv_modules.hpp里面存放了OpenCV2所有组件的宏。按照宏定义介绍如下:

  1. [calib3d] Camera Caliberation + 3D Reconstruction;
  2. [contrib] Contributed/Experimental Stuff, 最新添加的不太稳定的功能,新增了新型人脸识别、立体匹配、人工视网膜模型等;
  3. [core] core functions, 包括OpenCV基本数据结构、绘图函数、数组操作函数、系统函数和宏、OpenGL的互操作;
  4. [imgproc] Image Processing, 包括图像滤波、图像集合变换、直方图、结构分析和形状描述、运动分析和对象跟踪、特征检测、目标检测;
  5. [features2d] 2D Features, 特征检测和通用接口,关键点绘制函数和匹配功能绘制函数;
  6. [flann] Fast Library for Approximate Nearest Neighbors, 快速近似最近邻搜索,聚类;
  7. [gpu] GPU Acceleration;
  8. [highhui] Graphical User Interface, 媒体输入输出、视频捕捉、图像和视频的编码解码、图形交互界面接口;
  9. [legacy] 废弃代码,为了向下兼容
  10. [ml] Machine Learning: Statical Model, Normal Bayes Classifier, K-Nearest Neighbors, Support Vector Machines, Decision Trees, Boosting, Gradient Boosted Trees, Random Trees, Extremely randomized trees, Expectation Maximization, Neural Networks, MLData;
  11. [nonfree] 具有专利的算法模块,包括特征检测和GPU相关,不能商用;
  12. [objdetect] object detection: Cascade Classification, Latent SVM;
  13. [ocl] OpenCL-accelerated Computer Vision;
  14. [photo] Computational Photography, 图像修复和去噪;
  15. [stitching] image stitching, 图像拼接包括:拼接流水线,特点寻找和匹配图像、估计旋转、自动校准、图片歪斜、接缝估测、曝光补偿、图片混合;、
  16. [superres] Supper Resolution;
  17. [ts] OpenCV test code;
  18. [vedio] 视频分析组件,包括运动估计、背景分离、对象跟踪等;
  19. [Vediostab] Video Stabilization.

OpenCV3的改变

OpenCV3目的是为OpenCV减重,能够选择性的去掉一些臃肿的功能模块,抛弃了整体架构使用内核+插件的结构形式。在Github中,存放着正式版的OpenCV,还有opencv_contrib和opencv_extra

opencv_extra_modules_path=/modules

将模块的地址传递给主代码,并一起编译。

原文地址:https://www.cnblogs.com/Xiaoyan-Li/p/5674208.html