首页 > MachineLearning > OpenCV源码组织结构

OpenCV源码组织结构

  在Mac下面用 brew install opencv 即可安装opencv,下面打开安装后的文件目录,分析下OpenCV的组织结构。
  opencv的include下面有两个文件夹opencv和opencv2。
  opencv这个文件夹里面包含着旧版的头文件。现在留下来的都是精华,都是opencv的基础。

opencv
  ⊢--cv.h
  ⊢--cv.hpp
  ⊢--cvaux.h
  ⊢--cvaux.hpp
  ⊢--cvwimage.h
  ⊢--cxcore.h
  ⊢--cxcore.hpp
  ⊢--cxeigen.hpp
  ⊢--cxmisc.h
  ⊢--highgui.h
  ⊢--ml.h

  opencv2 这个文件夹里面包含着具有时代意义的新版OpenCV2系列的头文件(下面只显示文件夹,即各个模块)。

opencv2
  ⊢--calib3d/
  ⊢--features2d/
  ⊢--highgui/
  ⊢--ml/
  ⊢--ocl/
  ⊢--stitching/
  ⊢--video/
  ⊢--contrib/
  ⊢--flann/
  ⊢--imgproc/
  ⊢--nonfree/
  ⊢--superres/
  ⊢--core/
  ⊢--objdetect/
  ⊢--photo/
  ⊢--videostab/
  ⊢--gpu/
  ⊢--legacy/
  ⊢--ts/

  各个模块的说明
  (1)【calib3d】一一Calibration(校准)和3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容, 包括基本的多视角几何算法、单个立体摄像头标定、物体姿态估计、立体相似性算法、3D信息的重建等。
  (2)【contrib】一一Contributed/Experimental Stuf的缩写。该模块包含了一些最近添加的可选功能。新增了新型人脸识别、立体匹配、人工视网膜模型等技术。
  (3)【core】一一核心功能模块,包含如下内容:
    • OpenCV 基本数据结构
    • 动态数据结构
    • 绘图函数
    • 数组操作相关函数
    • 辅助功能与系统函数和宏
    • 与 OpenGL 的互操作
  (4)【imgproc】一一 Image 和 Process 这两个单词的缩写组合,图像处理模块。包含如下内容:
    • 线性和非线性的图像滤波
    • 图像的几何变换
    • 其他(Miscellaneous)图像转换
    • 直方图相关
    • 结构分析和形状描述
    • 运动分析和对象跟踪
    • 特征检测
    • 目标检测等内容
  (5)【features2d】一一也就是Features2D ,即 2D 功能框架,包含如下内容:
    • 特征检测和描述
    • 特征检测器(Feature Detectors) 通用接口
    • 描述符提取器(Descriptor Extractors) 通用接口
    • 描述符匹配器(Descriptor Matchers)通用接口
    • 通用描述符(Generic Descriptor) 匹配器通用接口
    • 关键点绘制函数和匹配功能绘制函数
  (6)【flann】一一 Fast Library for Approximate Nearest Neighbors ,高维的近似近邻快速搜索算法库,包含以下两个部分:
    • 快速近似最近邻搜索
    • 聚类
  (7)【gpu】一一 运用GPU加速的计算机视觉模块。
  (8)【highgui】一一 高层GUI 图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。
  (9)【legacy】一一些己经废弃的代码库, 保留下来作为向下兼容,包含如下内容:
    • 运动分析
    • 期望最大化
    • 直方图
    • 平面细分(CAPI)
    • 特征检测和描述(Feature Detection and Description)
    • 描述符提取器(Descriptor Extractors) 的通用接口
    • 通用描述符(Generic Descriptor Matchers) 的常用接口
    • 匹配器
  (10)【ml】一一Machine Learning ,机器学习模块,基本上是统计模型和分类算法,包含如下内容:
    • 统计模型(Statistical Models)
    • 一般贝叶斯分类器(Normal Bayes Classifier)
    • K-近邻(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)【obdetect】一一目标检测模块, 包含Cascade Classification (级联分类)和Latent SVM 这两个部分。
  (13)【ocl】一一OpenCL-accelerated Computer Vision , 运用OpenCL 加速的计算机视觉组件模块。
  (14)【photo】一一Computational Photography , 包含图像修复和图像去噪两部分
  (15)【stitching】一一images stitching ,图像拼接模块,包含如下部分:
    • 拼接流水线
    • 特点寻找和匹配图像
    • 估计旋转
    • 自动校准
    • 图片歪斜
    • 接缝估测
    • 曝光补偿
    • 图片混合
  (16)【superres】一一SuperReso1ution ,超分辨率技术的相关功能模块。
  (17)【ts】一一OpenCV 测试相关代码。
  (18)【video】一一拍频分析组件,该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容。
  (19)【Videostab】一一Video stabilization ,视频稳定相关的组件。

转载请注明: 转载自阿凡树的博客

本文链接地址: OpenCV源码组织结构

  1. 还没有评论
评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks