Opencv3概述及框架介绍

    个人接触Opencv没多久,有很多地方理解有误,还望各位大神指出,写博客只要是为了增加记忆,方便以后复习。之前就学习过Opencv的相关知识,一直没时间做个系统的整合,今天开始慢慢把以前学习的慢慢整合。

    Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。在这里我们要区分两个概念:图像处理和计算机视觉的区别:图像处理侧重于“处理”图像--如增强,还原,去噪,分割等等;而计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。

    Opencv由一系列C函数和C++类构成,拥有包括500多个C函数的跨平台的中高层API。它不依赖与外部库,但需要也可以使用外部库。因为计算机视觉和机器学习密切相关,所以Opencv还提供了MLL(Machine Learning Library)机器学习库,该学习库主要用于统计方面的模式识别和聚类。

    Opencv官方主页点击打开链接

    Opencv Github主页点击打开链接

    首先了解一下Opencv的整体模块架构,在重点学习和突破自己感兴趣的部分,就会有得心应手,一览众山小的学习体验。进入到Opencv安装的目录,本人是在Ubuntu下面的,默认的目录是/usr/local/include,可以看到有opencv和opencv2这两个文件夹。opencv这个文件夹里面包含旧版本的头文件,而opencv2 这个文件夹里面包含新版本的头文件。opencv文件夹下面主要包含下面文件


    我们重点关注opencv2文件夹里面的文件,可以看到类似下图所示的文件夹。


    1【aruco】模块: aruco模块基于ArUco库,这是一个检测二进制marker的非常流行的库,是由Rafael Muñoz和Sergio Garrido完成的。aruco的函数包含在c++ #include <opencv2/aruco.hpp>

    2【bioinspired】该库是基于仿生学的图像/视频处理库,目前包含模拟人类视网膜的算法。

   3【calib3d】Calibration(校准)和3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单位立体摄像头标定、物体姿态估计、立体相似性算法、3D信息的重建等。

   4【ccalib】用于3D重建的自定义校准模式

   5【core】核心功能模块:Opencv基本数据结构,动态数据结构,绘图函数,数组操作,辅助功能及系统函数和宏,与opengl的互操作

    6【datasets】数据集,暂时了解的应该是这东西。

    7【dnn】dnn深度学习模块

    8【face】根据字面理解是面部识别

    9【features2d】是2D功能框架:特征检测和描述;特征检测器;描述符提取器;描述符匹配器;关键点绘制函数和匹配功能绘制函数

    10【flann】Fast Library for Approximate Nearest Neighbors,高维的近似近邻快速搜索算法库

    11【fuzzy】模糊逻辑边缘提取

    12【highgui】高层GUI图形用户界面,包括媒体的输入输出、视频捕捉、图像和视频的编解码、图形交互界面的接口等

    13【imgproc】image 和 process这两个单词的缩写组合,图像处理模块。线性和非线性的图像滤波,图像的几何变换,其他图像转换,直方图相关,结构分析和形状描述,运动分析和对象跟踪,特征检测,目标检测等

    14【line_descriptor】线条提取

    15【ml】机器学习模块,基本上是统计模型和分类算法:统计模型,一般贝叶斯分类,K-近邻,支持向量机,决策树,提升,梯度提高树,随机树,超随机树,神经网络等

    16【objdetect】目标检测模块,包含Cascade Classification 和 Latent SVN这两部分

    17【optflow】光流法运动目标检测

    18【phase_unwrapping】暂时不知道干嘛的

    19【photo】Computational Photography,包含图像修复和图像去噪两部分

    20【reg】用于在两个图像之间建模一个Map的基类。

    21【rgbd】RGBD物体识别,目标不是介绍现有通用的物体识别技术,而是面向物流货物分练领域的物体识别

    22【saliency】过图像分割和区域颜色,距离等信息计算得到显著信息。

23【shape】形状匹配及距离计算

24【stereo】立体图像的深度图

25【stitching】 图像拼接模块:拼接流水线,特点寻找和匹配图像,估计旋转,自动校准,图片歪斜,接缝估测,曝光补偿,图片混合

26【structured_light】结构光被认为是获取3D模型最有效的技术之一。 该技术基于投影光图案并从一个或多个视点捕捉照亮的场景

27【superres】超分辨率技术的相关功能模块

28【surface_matching】三维曲面匹配

29【text】文字绘制与提取

30【tracking】目标跟踪算法

31【video】视频分析组件,该模块包括运动估计,背景分离,对象跟踪

32【videoio】从视频文件,图像序列或相机视频捕获类

33【videostab】视频稳定相关的组件,基本不用问

34【xfeatures2d】特征检测与匹配,在物体检测,视觉跟踪,三维重建等

35【ximgproc】图像处理模块。线性和非线性的图像滤波,图像的几何变换,其他图像转换,直方图相关,结构分析和形状描述,运动分析和对象跟踪,特征检测,目标检测等

36【xphoto】包含图像修复和图像去噪两部分

猜你喜欢

转载自blog.csdn.net/yangxueyangxue/article/details/80772566