3.2版本的模块说明:Opencv3.2模块
首先打开opencv_modules.hpp文件,可以看到对于各个功能模块的定义如下:
This file defines the list of modules available in current build configuration

define HAVE_OPENCV_CALIB3D

define HAVE_OPENCV_CORE

define HAVE_OPENCV_FEATURES2D

define HAVE_OPENCV_FLANN

define HAVE_OPENCV_HIGHGUI

define HAVE_OPENCV_IMGCODECS

define HAVE_OPENCV_IMGPROC

define HAVE_OPENCV_ML

define HAVE_OPENCV_OBJDETECT

define HAVE_OPENCV_PHOTO

define HAVE_OPENCV_SHAPE

define HAVE_OPENCV_STITCHING

define HAVE_OPENCV_SUPERRES

define HAVE_OPENCV_VIDEO

define HAVE_OPENCV_VIDEOIO

define HAVE_OPENCV_VIDEOSTAB

define HAVE_OPENCV_WORLD*

接着按照上述功能模块对照官方说明进行介绍。
3D相关CALIB3D
全称是Camera Calibration and 3D Reconstruction,也就是所谓的摄像机标定与三维重建。
包括:
1.基本多视角几何算法
2.单立体摄像机标定
3.物体位姿估计
4.三维重建要素

最基础部分CORE
定义了Opencv最为基础的数据结构,是一个内容非常详实与紧凑的模块。
包括了:
1.最基础的结构体
2.动态结构(Opencv1用得多,新版的不需要关注这些,利用std::vector或其他更高级的结构即可)
3.数组操作,包括了abs,absdiff,add,addWeighted,bitwise_and等等一些列的数组操作运算
4.绘画的功能,画点,线,圆,椭圆,方框等等……
5.XML/YAML文件进行存储或调用Opencv的各种数据结构
6.聚类:K-Mean聚类以及分割的API Clustering
7.辅助功能与系统函数和宏
8.OpenGL交互相关

2D特征FEATURES2D
显著的特征描述符,描述符匹配器和探测器.
包括了:
1.特征的检测以及描述:包括Fast算法,MSER,ORB,BRISK,FREAK ,Feature Detection and Description
2.特征检测器的接口 :Common Interfaces of Feature Detectors
3.描述符提取器的接口 :Common Interfaces of Descriptor Extractors
4.描述符匹配器的接口 :Common Interfaces of Descriptor Matchers
5.通用描述符匹配器的接口 :Common Interfaces of Generic Descriptor Matchers
6.关键点以及匹配的绘制函数 :Drawing Function of Keypoints and Matches
7.物体分类:这是基于local 2D features的物体分类,有BOW训练器以及BOW分类器两个模块

近邻搜索FLANN
FLANN库全称是Fast Library for Approximate Nearest Neighbors,它是目前最完整的(近似)最近邻开源库。不但实现了一系列查找算法,还包含了一种自动选取最快算法的机制。
主要分为:
1.快速近似最近邻搜索FLANN
2.聚类Clustering

高层级的交互HIGHGUI
High-level GUI and Media I/O 高层级的用户交互以及媒体的IO接口。
包括了:
1.用户交互:包括显示图片,窗口的操作,鼠标的操作等等。
2.读写图片或者视频:顾名思义就是对于图片或者视频的一些列操作。
3.Qt新功能

图片的读写IMGCODECS
用于图片的读写。
2.4里没有这块,OpenCV3开始图片、视频编解码从highgui模块分离出来,组成了imgcodecs和videoio。Linux环境下需要注意一下,其他没啥。

图片的处理IMGPROC
1.图像滤波Image Filtering:线性和非线性,Sobel,Smooth等等一些列实用的功能函数
2.图像的几何变换Geometric Image Transformations: 这一部分提供2D图像的很多几何变换操作,例如非常实用的Resize等等。
3.各种图片形式的转换Miscellaneous Image Transformations: 提供threshold,cvtColor等等12个功能函数
4.直方图Histograms ,提供便于计算的一些接口
5.结构分析和形状描述Structural Analysis and Shape Descriptors: 计算所有多边形或者栅格化形状的特证矩moment,例如可以提取下图的手的凸陷部分://看着非常实用的感觉
6.动作分析以及物体追踪Motion Analysis and Object Tracking
7.特征检测Feature Detection
(找边界)canny
(找角)cornerEigenValsAndVecs,cornerHarris,cornerMinEigenVal,cornerSubPix,(预处理)preCornerDetect
goodFeaturesToTrack
(找圆)HoughCircles
(找线)HoughLines,HoughLinesP
8.物体检测Object Detection ,就是模板匹配

机器学习ML
Machine Learning机器学习模块,基本就是统计学上回归,分类以及聚类的,大致分为以下几个部分:
1.统计模型Statistical Models
2.一般贝叶斯分类器Normal Bayes Classifier
3.K-近邻K-Nearest Neighbors
4.支持向量机SVM Support Vector Machines:之前尝试过的案例:SVM案例
5.决策树Decision Trees
6.级联分类器Boosting
7.梯度树Gradient Boosted Trees
8.随机树Random Trees
9.超随机树Extremely randomized trees
10.期望最大化Expectation Maximization
11.神经网络Neural Networks
12.机器学习数据的形式相关MLData
如何训练以及使用见地址:机器学习官方说明
————-3.2与2.4相比新增内容
1.Logistic Regression:类似于SVM也是一种多分类器
物体检测OBJDETECT
物体检测
Opencv2.4包含Cascade Classification(级联分类)和Latent SVM这两个部分
Opencv3.2所采用的方法为
Haar Feature-based Cascade Classifier for Object Detection
图像降噪克隆与NPR渲染PHOTO
也就是 Computational Photography,Opencv2.4包括以下两个部分:
1.图像修复Inpainting
void inpaint(InputArray src, InputArray inpaintMask, OutputArray dst, double inpaintRadius, int flags)
2.图像降噪Denoising
———–Opencv3.2模块
1.降噪Denoising相比于2.4功能函数更多了
2.高范围动态成像HDR imaging利用HDR算法,有一系列相关的算法函数……2.4里并没有
3.无缝克隆Seamless Cloning
如图,强大一览无余,图片摘自vsooda的博客

4.非真实感渲染Non-Photorealistic Rendering
看名字很玄乎……大概动画里用得很多,把一个图片渲染得不像真的,如图所示,左侧为一般渲染,右侧为NPR渲染(摘自维基百科)

5.C API
形状的匹配以及距离计算SHAPE
Shape Distance and Matching,形状的距离以及匹配
//对这部分了解不是很多,只能形而上学地复制过来了
Opencv3特有的部分,Opencv2.4并没有…
1. AffineTransformer仿射变换算法的包装类
2. HistogramCostExtractor
3. HausdorffDistanceExtractor
4. ShapeContextDistanceExtractor
5. ThinPlateSplineShapeTransformer

图像拼接STITCHING
图像拼接模块,流程如下,可以去掉或者单独使用其中某些模块。
主要包括以下内容:
1.拼接管道Stitching Pipeline
2.特征点提取以及图片匹配Features Finding and Images Matching
3.旋转估计Rotation Estimation
4.自动校准Autocalibration
5.图片倾斜旋转相关的包Images Warping
6.缝隙估计Seam Estimation
7.曝光补偿Exposure Compensation
8.图片混合Image Blenders
超分辨率SUPERRES
Super Resolution,包含了一系列的超分辨率问题的处理方法

视频分析VIDEO
Video Analysis视频分析,包括以下两块内容:
1.动作分析Motion Analysis
2.物体追踪Object Tracking

视频读写VIDEOIO
OpenCV3特有的仅用来读写视频的模块
视频稳定系VIDEOSTAB
Video Stabilization、视频稳定模块包含一组可以用来解决视频稳定问题的函数和类。2.4基本没提及,3.2里内容比较详实。包括以下两个内容:
1.全局运动估计Global Motion Estimation
包括一些列功能和类用以进行两张图或者两个点云阵的全局动作估计。功能函数都被封装成了类。
2.快速步进法Fast Marching Method
打包WORLD
终于到最后一个了,这是Opencv3特有的,把所有东西打包在一个dll里,配置环境的时候很方便,具体工程实际就要分情况了。
最后放上Opencv3.2以及Opencv2.4模块的对比图方便调用:

其中Opencv2.4特有的几个模块功能说明如下:
//参考了易术军的博客
OPENCV_CONTRIB:也就是Contributed/Experimental Stuf的缩写, 该模块包含了一些最近添加的不太稳定的可选功能,不用去多管。2.4.8里的这个模块有新型人脸识别,立体匹配,人工视网膜模型等技术。
OPENCV_GPU:运用GPU加速的计算机视觉模块
OPENCV_LEGACY:一些已经废弃的代码库,保留下来作为向下兼容,3里以及全部删除。
OPENCV_NONFREE: 也就是一些具有专利的算法模块 ,包含特征检测和GPU相关的内容,在3里删去了。
OPENCV_OCL :即OpenCL-accelerated Computer Vision,运用OpenCL加速的计算机视觉组件模块,在3里整个并入了Core.
OPENCV_TS:测试用。

浅谈opencv3.2中各个模块的简介相关推荐

  1. 浅谈 Linux 系统中的 SNMP Trap 【转】

    文章来源:浅谈 Linux 系统中的 SNMP Trap 简介 本文讲解 SNMP Trap,在介绍 Trap 概念之前,首先认识一下 SNMP 吧. 简单网络管理协议(Simple Network ...

  2. 浅谈导航数据中POI搜索技术原理

    浅谈导航数据中POI搜索技术原理之一 王健 导航技术的应用已经成为现在生活中重要组成部分,为我们的生活提供了极大的便利.基本都有这样生活的体验,搜索自己位置附近的银行网点.餐馆.那么这些POI是如何快 ...

  3. 浅谈verilog hdl中parameter的用法

    浅谈verilog hdl中parameter的用法 parameter 1.parameter参数使用 事例1: 事例2: 事例3 事例4 2.defparam使用 事例5 3.parameter与 ...

  4. 嵌入式AI —— 6. 为糖葫芦加糖,浅谈深度学习中的数据增广

    没有读过本系列前几期文章的朋友,需要先回顾下已发表的文章: 开篇大吉 集成AI模块到系统中 模型的部署 CMSIS-NN介绍 从穿糖葫芦到织深度神经网络 又和大家见面了,上次本程序猿介绍了CMSIS- ...

  5. 浅谈实际开发中常用的分布式事物处理

    浅谈实际开发中常用的分布式事物处理 文章目录 前言 一.分布式事物 二.常用方案 1.使用记录表+mq机制 前言 随着微服务的流行,越来越多系统不在是单体结构,根据业务和功能拆分成不同微服务,这就导致 ...

  6. 浅谈智能交通中的电子地图

    浅谈智能交通中的电子地图 20世纪80年代以来,随着经济的发展和人口的增长,车和人的矛盾变得越来越尖锐,交通拥挤和阻塞现象日益严重,交通污染与交通事故等日益困扰着交通事业的发展.路网通过能力已不能满足 ...

  7. c语言弱符号与函数指针,浅谈C语言中的强符号、弱符号、强引用和弱引用【转】...

    首先我表示很悲剧,在看<程序员的自我修养--链接.装载与库>之前我竟不知道C有强符号.弱符号.强引用和弱引用.在看到3.5.5节弱符号和强符号时,我感觉有些困惑,所以写下此篇,希望能和同样 ...

  8. 浅谈VB6.0中的实用技巧

    浅谈VB6.0中的实用技巧 (一) VB6.0中文本框处理技巧 在Visual Basic中,文本框(TextBox)是最常用的控件,熟练运用文本框 是开发出高质量的应用程序的基础.笔者在从事应用程序 ...

  9. 浅谈域渗透中的组策略及gpp运用

    组策略(英语:Group Policy)是微软Windows NT家族操作系统的一个特性,它可以控制用户帐户和计算机帐户的工作环境.组策略提供了操作系统.应用程序和活动目录中用户设置的集中化管理和配置 ...

  10. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

最新文章

  1. sybase备份问题
  2. UNIX再学习 -- TCP/UDP 客户机/服务器
  3. 简单了解各种序列化技术-kyro序列化框架
  4. HTTP 错误 404 - 文件或目录未找到 - 最终解决方法
  5. pytorch 存取模型(待补充)
  6. 新安装 Ubuntu 12.10 需要做的 10 件事(转)
  7. cortex系列处理器排行_vivoX60系列即将首发5nm Exynos 1080芯片
  8. dependency-check-maven安全漏洞扫描工具介绍
  9. UCGUI动态内存分析
  10. matlab验证dtft移位性质,7.DTFT的Matlab实现.ppt
  11. 面经(2022 美团暑期实习 -一面)
  12. 论文必备:深度学习中的网络结构是怎么画的
  13. Vue----.stop、.prevent、.capture、.self用法以及.stop和.self的区别
  14. 零基础入行IT,怎么成为一名优秀的IT人才?
  15. 记一次笔记本电脑百度云盘无法连接网络问题
  16. 窗口函数 (转) rows between unbounded preceding and current row
  17. vue-cli3 跑项目时 ‘98%’ after emitting CopyPlugin
  18. 非此即彼的逻辑错误_GMAT高分范文100篇(非此即彼逻辑错误)【圣才出品】
  19. php书和作者,【原创书评】《[死神]白鸟书 》作者:云暖(任性傲娇的贵族少年与大小白的回忆)...
  20. 上海网站排名优化找哪家?清法网络助你一臂之力

热门文章

  1. 量子计算机基地边缘,为什么三体人可以吊打地球文明?记忆继承、思想共享是关键...
  2. 苹果电脑上的Word打不开怎么办?Word文件怎么恢复?
  3. ios弧形进度条_iOS圆形进度条
  4. 职业规划是什么?应该怎么回答?
  5. 【R_绘图】绘图字体设为Times New Roman
  6. java list 时间排序吗_java collection.sort()根据时间排序list | 学步园
  7. 如何判断一个点在三角形内部
  8. Python-玩转数据-利用百度高德经纬度地图定位
  9. HTML5教程书籍电子版30本合集
  10. Win10控制面板打不开怎么办?