一、opencv_contrib仓库简介
OpenCV的核心库,就是通常所说的OpenCV。
在核心库之外,还有一个分离开的包含OpenCV最新功能实现的opencv_contrib,也可以称之为OpenCV贡献库。
opencv_contrib中包含的模块有:
opencv_contrib仓库中包含了绝大多数用户生成的内容,同时也比核心库OpenCV拥有更完整的关于计算机视觉的算法应用;
opencv_contrib仓库中的模块与模块之间没有任何软件依赖。 每一个模块都要求自身具备文档说明、单元测试案例和样本代码,并且绝大多数模块通常还包含了模块教程。
OpenCV核心库必须通过的测试,例如,每一个模块必须服从所有其他的格式、自动化软件构架测试、单元测试等等。opencv_contrib仓库中的模块也必须通过这些测试。
opencv_contrib仓库中的每一个函数也和核心库OpenCV中的函数一样,都需要写说明文档,这样opencv_contrib仓库中的函数就形成了一个能自动维护的关于更高级计算机视觉应用拓展的超集。
opencv_contrib仓库可以在这里下载:opencv_contrib下载地址;
编译的时候,opencv_contrib仓库需要从OpenCV核心库中抽离出来,并独立编译;
通过nightly编译的站点,可以找到这些opencv_contrib仓库模块的说明文档。
二、opencv_contrib仓库中包含的内容
opencv_contrib仓库中包含的所有模块都需要单独下载和单独编译。
如果你决定编译opencv_contrib仓库,但又不想编译全部的函数,可以关闭编译任意函数选项,通过替换的值为OFF,后面紧跟需要关闭的函数的名字。
$ cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules \
-D BUILD_opencv_<reponame>=OFF \
<opencv_source_directory>
opencv_contrib仓库中的函数包括:
aruco
阿鲁科和查鲁科标记。包括增强现实ArUco标记和CHARUCO 标记(ArUco标记嵌入在棋盘的白色区域之中)。
ArUco and ChArUco markers. Includes augmented reality ArUco markers and ChARUco markers (ArUco markers embedded inside the white areas of the checkerboard).
bgsegm
背景分割。改进的自适应背景混合物模型和用于在可变照明条件下进行实时人工跟踪。
Background segmentation. Improved adaptive background mixture model and use for real-time human tracking under variable lighting conditions.
bioinspired
生物视觉。一种受生物启发的视觉模型,提供方法用于最小化噪声和亮度方差、处理瞬态事件分割和执行高动态范围 (HDR) 色调映射。
Biological vision. A biologically inspired vision model providing methods to minimize noise and luminance variance, handle transient event segmentation, and perform high-dynamic-range (HDR) tone mapping.
ccalib
自定义校准。用于 3D 重建、全向摄像机校准、随机模式校准和多机位校准的模式。
Custom calibration. Patterns for 3D reconstruction, omnidirectional camera calibration, random pattern calibration, and multicamera calibration.
cnn_3dobj
深层对象识别和姿势。使用Caffe深度神经网络库构建、训练和测试一个视觉对象识别和姿势的CNN模型。
Deep object recognition and pose. Uses Caffe deep neural net library to build,train, and test a CNN model of visual object recognition and pose.
contrib_world
opencv_contrib拥有者。contrib_world模块,在构建时,包含所有其他opencv_contrib模块。它可用于更方便地重新分配 OpenCV 二进制文件。
opencv_contrib holder. contrib_world is the module that, when built, contains all other opencv_contrib modules. It may be used for the more convenient redistribution of OpenCV binaries.
cvv
计算机视觉调试器。你可以添加到你的程序中的简单代码会弹出 GUI,这个图形界面允许您以交互和视觉方式调试计算机视觉程序。
Computer vision debugger. Simple code that you can add to your program that pops up a GUI allowing you to interactively and visually debug computer vision programs.
datasets
用于读取现有计算机视觉数据库的代码,以及使用该数据集的数据来训练、测试和运行使用数据集读取器读取的示例。
Data sets reader. Code for reading existing computer vision databases and samples of using the readers to train, test, and run using that data set’s data.
dnn
深度神经网络(DNN)。该模块可以在 Caffe 神经网络库中训练的图像识别网络中读取,并在 CPU 上高效运行它们。
Deep neural networks (DNNs)。This module can read in image-recognition networks trained in the Caffe neural network library and run them efficiently on CPU。
dnns_easily_fooled
颠覆DNN。此代码可以使用深度神经网络中的激活来欺骗深度神经网络识别其他内容。
Subvert DNNs. This code can use the activations in a network to fool the networks into recognizing something else.
dpm
可变形零件模型。Felzenszwalb 的级联具有可变形部件对象识别代码。
Deformable part model. Felzenszwalb’s cascade with deformable parts object recognition code.
face
人脸识别。人脸识别技术包括艾根、费舍尔和本地二进制模式直方图 (LBPH) 方法。
Face recognition. Face recognition techniques include Eigen, Fisher, and local binary pattern histograms (LBPH) methods.
fuzzy
视觉中的模糊逻辑。模糊逻辑图像变换与反转;模糊图像处理。
Fuzzy logic in vision. Fuzzy logic image transform and inverse; Fuzzy image processing.
hdf
分层数据存储。此模块包含用于分层数据格式的I/O例程;用于存储大量数据。
Hierarchical data storage. This module contains I/O routines for hierarchical data format; meant to store large amounts of data.
line_descriptor
线段的分割提取和匹配。使用二进制描述符提取、描述和锁定线段的方法。作者之一Gary通过修改该算法,建立了一个机器人箱处理公司(工业感知公司)。
Line segment extract and match. Methods of extracting, describing, and latching line segments using binary descriptors. One of the authors, Gary, built a robotic box handling company (Industrial Perception Inc.) out of a modification of this algorithm.
matlab
MATLAB 接口。用于某些 OpenCV 核心模块的 OpenCV MATLAB Mex 包装器代码生成器。
MATLAB interface. OpenCV MATLAB Mex wrapper code generator for certain OpenCV core modules.
optflow(选择流)
光流。用于运行和评估深度流、简单流、稀疏流和运动模板(剪影流)的算法。
Optical flow. Algorithms for running and evaluating deepflow, simpleflow, sparsetodenseflow, and motion templates (silhouette flow).
plot
绘制模块。绘图模块允许您轻松地以 1D 或 2D 绘制数据。
Plotting. The plot module allows you to easily plot data in 1D or 2D.
reg
图像注册。基于像素的图像注册,用于精确对齐。遵循理查德·塞利斯基的论文[塞利斯基04]。
Image registration. Pixel-based image registration for precise alignment. Follows
the paper by Richard Szeliski [Szeliski04].
rgbd
RGB 深度处理模块。Linemod 3D 对象识别;快速曲面法线和3D平面查找。3D视觉里程计。
RGB depth processing module. Linemod 3D object recognition; fast surface normal, and 3D plane finding. 3D visual odometry.
saliency
显著性 API。人类在场景中会在哪里看。具有静态、运动和"对象"显著性例程。
Saliency API. Where humans would look in a scene. Has routines for static,motion, and “objectness” saliency.
sfm
结构从运动。此模块包含从 2D 图像执行 3D 重建的算法。模块的核心是 Libmv 的轻版本。
Structure from motion. This module contains algorithms to perform 3D reconstruction from 2D images. The core of the module is a light version of Libmv.
stereo
立体声通信。使用不同的描述符进行立体声匹配:人口普查、CS-Census、MCT、BRIEF 和 MV。
Stereo correspondence. Stereo matching done with different descriptors: Census,CS-Census, MCT, BRIEF, and MV.
structured_light
结构化照明。如何生成和投射灰色代码模式,并使用它们来查找场景中的密集深度。
Structured light use. How to generate and project gray code patterns and use them to find dense depth in a scene.
surface_matching
点对特征。使用多模式点对特征实现 3D 对象检测和定位。
Point pair features. Implements 3D object detection and localization using multimodal point pair features.
text
视觉文本匹配。在视觉场景中,检测文本、分段单词和识别文本!
Visual text matching. In a visual scene, detect text, segment words, and recognize the text!
tracking
基于视觉的对象跟踪。使用和/或评估五种不同的视觉对象跟踪技术之一。
Vision-based object tracking. Use and/or evaluate one of five different visual object tracking techniques.
xfeatures2d
额外的Features2D。额外的 2D 特征框架包含实验和付费 2D 特征检测器/描述算法:SURF、SIFT、BRIEF、Censure、Freak、LUCID、Daisy 和自相似算法。
Features2D extra. Extra 2D features framework containing experimental and paid 2D feature detector/descriptor algorithms: SURF, SIFT, BRIEF, Censure,Freak, LUCID, Daisy, and Self-similar.
ximgproc
扩展图像处理。包括结构化森林、域变换过滤器、引导式滤波器、自适应流形滤波器、联合双边滤波器和超像素。
Extended image processing. Includes structured forests, domain transform filter,guided filter, adaptive manifold filter, joint bilateral filter, and superpixels.
xobjdetect
增强的 2D 对象检测。使用 Waldboost 级联和本地二进制模式计算作为 2D 对象检测的整体要素。
Boosted 2D object detection. Uses a Waldboost cascade and local binary patterns computed as integral features for 2D object detection.
xphoto
额外的计算摄影学。提供其他照片处理算法:色彩平衡、去噪和修复。
Extra computational photography. Provides additional photo processing algorithms: color balance, denoising, and inpainting.