openCV之头文件分析

合集下载

opcv

opcv

OpenCV是Intel开源计算机视觉库。

它由一系列C 函数和少量C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 拥有包括300 多个C函数的跨平台的中、高层API。

它不依赖与其它的外部库,尽管也可以使用某些外部库。

OpenCV 对非商业应用和商业应用都是免费(FREE)的。

在VC6.0中利用OpenCV进行开发视觉,首先,需要将OpenCV正确的配置到VC开发环境中。

主要是设置预先编译的头文件的路径与动态链接库的路径。

一在VC编译器下,在Project菜单下选择setting,弹出对话框。

1 设置预编译的头文件选择C/C++【Category】,在下拉菜单中选择Preprocessor,然后在A dditional Include directories 中输入以下几项:C:\Program Files\OpenCV\cv\include (根据本人机器上OpenCV的安装路径进行设置,如在D盘,则写D: ,以下同)C:\Program Files\OpenCV\otherlibs\highguiC:\Program Files\OpenCV\cxcore\include(新版本需要)C:\Program Files\OpenCV\otherlibs\cvcam\include每一条之间用逗号隔开。

其中C:\Program Files\Intel\opencv为OpenC V的安装路径,这是通用的安装路径,建议最好采用这种设置,以方便大家交流;不然,每次都要重新设置路径,比较麻烦。

2 设置链接库在Link按键下的Category下拉菜单中选择Input选项(指定要连接的库文件,放弃连接的库文件hao ),在Additional library path中,输入:C:\Program Files \OpenCV\lib最后在Setting For下拉菜单中依次选择Win32 Debug和Win32 Releas e,分别在Object /library modules 输入:cv.lib highgui .lib cxcore.lib cvcam.lib注意每个库之间用一个空格隔开。

opencv原理

opencv原理

opencv原理OpenCV的工作原理基于图像处理、计算机视觉和机器学习的一系列方法和算法。

它的设计目标是提供一个简单、高效、通用的计算机视觉库,使开发者能够快速地开发实时的计算机视觉应用程序。

以下是OpenCV的一些主要原理:1. 图像采集与加载:OpenCV可以从摄像头、视频文件或图像文件中采集图像数据。

它支持多种图像格式,包括JPEG、PNG、BMP等。

2. 图像预处理:在进行进一步处理之前,OpenCV通常需要对图像进行预处理。

这包括调整图像大小、灰度化、去噪、直方图均衡化和边缘检测等。

3. 特征提取:在计算机视觉任务中,特征提取是一个关键步骤。

OpenCV提供了各种方法来检测图像中的特征,如角点、边缘、线条、斑点等。

这些特征可以用于图像分类、对象识别、目标跟踪等任务。

4. 特征匹配:在一些应用中,需要在不同图像中找到相似的特征点或对象。

OpenCV提供了各种特征匹配算法,如基于模板匹配、基于特征描述符的匹配和基于兴趣点的匹配等。

5. 目标检测与跟踪:OpenCV可以通过使用分类器、机器学习算法和深度学习模型来检测和跟踪图像中的目标。

这可以用于人脸检测、行人检测、车辆检测等应用。

6. 图像分割:图像分割是将图像分成多个区域或对象的过程。

OpenCV提供了多种图像分割算法,如基于颜色、纹理、边缘等的分割方法。

7. 图像配准:图像配准是将多个图像对齐以进行比较或融合的过程。

OpenCV提供了多种图像配准方法,如特征点配准、基于几何变换的配准和基于深度学习的配准等。

8. 机器学习和深度学习:OpenCV集成了各种机器学习和深度学习算法,如支持向量机(SVM)、卷积神经网络(CNN)和循环神经网络(RNN)等。

这些算法可以用于图像分类、目标检测、图像生成等任务。

9. 图像的存储与输出:OpenCV可以将处理后的图像数据保存到文件中,支持多种图像格式。

它还可以将图像以各种方式显示出来,如窗口显示、视频流显示和Web显示等。

OpenCV入门教程

OpenCV入门教程

O p e n C V入门教程-CAL-FENGHAI.-(YICAI)-Company One1OpenCV 入门教程作者:于仕琪年 8 月版权所有于仕琪本作品采用知识共享署名-相同方式共享国际许可协议进行许可。

1前言OpenCV 是一个广受欢迎的开源计算机视觉库,它提供了很多函数,实现了很多计算机视觉算法,算法从最基本的滤波到高级的物体检测皆有涵盖。

很多初学者希望快速掌握OpenCV 的使用方法,但往往会遇到各种各样的困难。

其实仔细分析,造成这些困难的原因有两类:第一类是C/C++编程基础不过关;第二类是不了解算法原理。

解决这些困难无非提升编程能力,以及提升理论基础知识。

提升编程能力需要多练习编程,提升理论知识需要系统学习《数字图像处理》、《计算机视觉》和《模式识别》等课程,所有这些都不能一蹴而就,需要耐下心来认真修炼。

同时我们也需要认识到 OpenCV 只是一个算法库,能为我们搭建计算机视觉应用提供“砖头”。

我们并不需要完全精通了算法原理之后才去使用 OpenCV,只要了解了“砖头”的功能,就可以动手了。

在实践中学习才是最高效的学习方式。

本小册子希望为初学者提供引导,使初学者快速了解 OpenCV 的基本数据结构以及用法。

此外,如您发现有错误之处,欢迎来信指正。

于仕琪深圳大学插播广告:欢迎有能力、有激情以及对计算机视觉有兴趣的同学报考我的研究生。

欲了解详情可以访问深圳大学招生网或者给我发 email。

目录第 1 章预备知识 (5)编程的流程 (5)什么叫编辑 (6)什么叫编译 (6)什么叫连接 (7)什么叫运行 (7)Visual C++是什么 (8)头文件 (9)库文件 (10)OpenCV 是什么 (11)什么是命令行参数 (12)常见编译错误 (13)找不到头文件 (13)拼写错误 (14)常见链接错误 (15)运行时错误 (17)第 2 章OpenCV 介绍 (19)OpenCV 的来源 (19)OpenCV 的协议 (19)第 3 章图像的基本操作 (21)图像的表示 (21)Mat 类 (23)创建 Mat 对象 (24)构造函数方法 (24)create()函数创建对象 (25)Matlab 风格的创建对象方法 (26)矩阵的基本元素表达 (26)像素值的读写 (27)at()函数 (28)使用迭代器 (29)通过数据指针 (30)选取图像局部区域 (32)单行或单列选择 (32)用 Range 选择多行或多列 (33)感兴趣区域 (33)取对角线元素 (34)Mat 表达式 (34)Mat_类 (36)Mat 类的内存管理 (38)输出 (40)Mat 与 IplImage 和 CvMat 的转换 (42)Mat 转为 IplImage 和 CvMat 格式 (42)IplImage 和 CvMat 格式转为 Mat (42)第 4 章数据获取与存储 (44)读写图像文件 (44)读图像文件 (44)写图像文件 (45)读写视频 (47)读视频 (47)写视频 (49)第1章预备知识OpenCV 是一个功能强大的计算机视觉库,要用好它,除了要具有相关的计算机视觉理论知识外,还需要具有一定的编程能力。

OpenCV 3.1.0 图像处理教程-概述OpenCV介绍与环境搭建

OpenCV 3.1.0 图像处理教程-概述OpenCV介绍与环境搭建
库文件 D:\opencv3.1\opencv\build\x64\vc14\lib
链接器 opencv_world310d.lib
测试代码
#include <opencv2/core/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream>
商业和研究领域 最新版本是OpenCV 3.1.0,当前SDK支持语言包括了Java、Python、
IOS和Android版本。 其它Matlab、Halcon
核心模块
HighGUI部分 Image Process 2D Feature Camera Calibration and 3D reconstruction Video Analysis Object Detection Machine Learning GPU加速
using namespace cv; using namespace std; int main(int argc, char** args) {
Mat image = imread("girl.jpg", IMREAD_GRAYSCALE); if (image.empty()) {
cout << "could not find the image resource..." << std::endl; return -1; } namedWindow("My Image", CV_WINDOW_AUTOSIZE); imshow("My Image", image); waitKey(0);

OpenCV源码架构讲解

OpenCV源码架构讲解

OpenCV源码架构讲解1. Core(核心):此模块包含了OpenCV的核心功能,如矩阵操作、数据类型、数组和向量运算等。

该模块提供了基础的数据结构和函数,为其他模块的实现提供支持。

2. Imgproc(图像处理):此模块提供了各种图像处理函数,如滤波、边缘检测、图像变换等。

它包含了大量的图像处理算法,并提供了丰富的工具函数,方便用户进行图像处理操作。

3. Highgui(图形用户界面):该模块提供了图形用户界面相关的函数,如图像显示、鼠标事件处理、键盘事件处理等。

它可以帮助用户在图像处理过程中进行交互操作,方便调试和分析。

4. Video(视频处理):此模块提供了与视频处理相关的函数,如视频捕捉、视频压缩、视频写入等。

它支持从摄像机、文件或其他源中读取视频流,并提供了一系列的视频处理算法。

5. Objdetect(对象检测):该模块提供了对象检测相关的函数,如人脸检测、行人检测等。

它提供了训练好的模型和相应的算法,可以用于识别和跟踪不同种类的对象。

此外,OpenCV还包含了一些辅助模块,如ml(机器学习)、calib3d (相机标定和三维重建)、features2d(特征检测和描述子)、videoio (视频IO)、flann(最近邻)等。

OpenCV的源码采用模块化的结构,使得用户可以灵活地选择所需的模块,以适应不同的应用场景。

每个模块都有自己的命名空间和头文件,以避免命名冲突。

同时,源码还提供了丰富的示例和文档,方便用户使用和理解。

在OpenCV的源码中,各个模块之间存在着一定的依赖关系,需要进行编译和链接才能生成可执行文件。

此外,OpenCV还提供了对Python、Java等语言的接口,使得用户可以在不同的平台上使用OpenCV。

总之,OpenCV的源码架构是基于C++实现的,模块化设计使得用户可以方便地选择所需的功能模块。

各个模块之间存在着一定的依赖关系,通过编译和链接可以生成可执行文件。

opencve 源码解读

opencve 源码解读

OpenCV是一个开源的计算机视觉和机器学习软件库,它包含了多个用于图像处理和计算机视觉的算法和函数。

下面是对OpenCV源码的一些解读:架构和组成OpenCV的源码主要由C++编写,同时也支持Python和Java等语言。

它主要由以下几个模块组成:Core:提供基本的图像处理和计算机视觉功能,如图像读取、保存、转换、滤波等。

Imgproc:提供一些高级的图像处理函数,如图像分割、特征提取、形态学操作等。

Video:提供视频处理和分析的函数,如视频捕获、编码、解码等。

HighGUI:提供用户界面功能,如窗口创建、鼠标和键盘事件处理等。

Contrib:提供一些额外的算法和功能,如SIFT、SURF等。

算法实现OpenCV包含了许多经典的计算机视觉算法和深度学习模型,如SIFT、SURF、HOG、YOLO等。

这些算法和模型的实现方式各不相同,但都经过了精心的优化和效率提升。

在OpenCV中,一些算法的实现采用了C++的模板函数和内联函数等技术,以提高计算效率。

跨平台支持OpenCV支持多个操作系统和硬件平台,包括Windows、Linux、MacOS、Android和iOS等。

为了实现跨平台支持,OpenCV的源码中包含了许多与平台相关的代码,如OpenGL的渲染、摄像头的访问等。

此外,OpenCV还提供了Python和Java等语言的接口,方便不同语言的开发者使用。

性能优化OpenCV的源码中包含了许多性能优化的技巧,如使用并行计算、缓存优化、内存管理等。

这些技巧可以提高OpenCV的运行速度和处理能力,使其能够处理大规模的数据和高性能的计算任务。

总之,OpenCV是一个功能强大、性能优良、跨平台支持的计算机视觉库,它的源码包含了丰富的算法和功能,同时也具有很好的可读性和可维护性。

通过对OpenCV源码的解读,可以更好地了解其功能和实现方式,为开发者和用户提供更好的支持和帮助。

OpenCV学习笔记(十六)

OpenCV学习笔记(十六)前言:第一种方法是人脸检测中最常用的是Haar-Adaboost算法,该算法首先在人脸检测中得到广泛运用,而后也被用于其它有关目标检测中。

adaboost 是一套机器学习的框架,根据给出的正样本和副样本训练一个用于识别正样本一类物体的模型。

这个模型的本质就是分类器,又叫做级联(cascade)分类器。

本文主要是学习使用OpenCV自带的adaboost+haar特征程序,并展示其用于人脸检测的效果,最后学习如何训练自己的分类器。

第二种方法是基于OpenCV内置的HOG+SVM算法。

这种算法我用python语言编写程序,通过读取视频中的每一帧图像来作为输入检测人脸。

一、基于Haar-Adaboost算法的代码演示OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification)。

1.#include <opencv2/opencv.hpp>2.#include <iostream>3.ing namespace cv;ing namespace std;6.7.int main( )8.{9.String cascadeFilePath = "D:\\OpenCV3.1\\opencv\\build\\etc\\haarcascades\\haarcasca de_frontalface_alt.xml"; //反斜杠’\‘表示转义字符,所以绝对路径需要如是表示10.CascadeClassifier face_cascade;11.if (!face_cascade.load(cascadeFilePath)) // 用load函数加载XML分类器文件12.{13.printf("could not load the haar data...\n");14.return -1;15.}16.Mat src_img, gray_img;17.src_img = imread("test16.jpg");18.cvtColor(src_img, gray_img, COLOR_BGR2GRAY);19.equalizeHist(gray_img, gray_img); //直方图均衡化20.imshow("原图", src_img);21.22.vector<Rect> faces; // faces是一个容器,用来接收检测到的人脸23.face_cascade.detectMultiScale(gray_img, faces, 1.1,2, 0, Size(10, 10), Size(30, 30)); //寻找人脸24.for (auto t = 0; t < faces.size(); ++t)25.{26.rectangle(src_img, faces[t], Scalar(0, 0, 255), 2, 8, 0); // 用红色矩形框出人脸27.}dWindow("检测结果",CV_WINDOW_AUTOSIZE);29.imshow("检测结果", src_img);30.31.waitKey(0);32.return 0;33.}运行程序如下:我们换张人多的照片试试:注意事项:(1)在xml文件的路径当中,我们用到了“\\”,为什么呢?且听我娓娓道来:在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"\",比如"C:\Windows\System"。

opencv_简介


图像处理模块
图像变换
提供多种图像变换方法,如缩 放、裁剪、旋转等。
形态学操作
进行膨胀、腐蚀、开运算和闭 运算等形态学操作,以改善图 像质量。
图像读取与写入
OpenCV 支持读取和写入多种 图像格式,如 JPEG、PNG、 BMP 等。
图像滤波
应用各种滤波器,如高斯滤波 、中值滤波等,以增强图像质 量。
目的
OpenCV旨在为实时图像处理提供一套通用的、高效的解决方案。
内容
OpenCV包含了众多图像处理和计算机视觉方面的算法,涉及领域包括图像增强、特征提 取、目标检测与识别、视频分析、3D重建等。
OpenCV 的历史与发展
起源
01
OpenCV起源于1991年,由Gary Bradski创建,初
衷是为了解决工业视觉问题。
色彩空间转换
支持将图像从一种色彩空间转 换到另一种色彩空间,如 RGB 到灰度。
视频分析模块
视频读取与写入
OpenCV 支持读取和写入多种视频格式,如 AVI、MP4 等。
视频帧提取
从视频中提取单帧图像进行进一步分析。
运动分析
通过光流法、背景减除等方法进行运动物体的检测和跟踪。
目标检测
利用帧间差分法等方法检测视频中的目标。
OpenCV 扩展库介绍
• OpenCV 扩展库是 OpenCV 的一个子项目,它提供了一些高级的功能,如深度学习、3D 重建等。开发者可 以使用 OpenCV 扩展库来扩展 OpenCV 的功能。
04
OpenCV 语言支持与开发环境
OpenCV 支持的语言及平台
OpenCV 支持多种编程语言,包括 C、Python、Java、MATLAB 等,方便开发者使用自己熟悉的编 程语言进行开发。

opencv表示法

opencv表示法OpenCV是一种计算机视觉库,其表示法是指使用OpenCV库中提供的函数和数据结构来描述图像和图像处理过程。

在本文中,我将介绍OpenCV表示法的基本概念、常用函数和数据结构,并通过示例说明如何使用OpenCV进行图像处理和分析。

OpenCV表示法的基本概念包括图像的读取和显示、像素操作、图像处理和分析等。

首先,我们可以使用OpenCV中的imread函数来读取图像文件,然后使用imshow函数显示图像。

例如,下面的代码可以读取一张名为"image.jpg"的图像,并显示出来:```pythonimport cv2# 读取图像image = cv2.imread("image.jpg")# 显示图像cv2.imshow("Image", image)cv2.waitKey(0)cv2.destroyAllWindows()```通过以上代码,我们可以在屏幕上显示出一张图像。

除了读取和显示图像,OpenCV还提供了丰富的像素操作函数,可以对图像进行像素级别的操作。

例如,我们可以通过以下代码将图像的每个像素点的红色通道值设置为0,即去掉图像的红色分量:```pythonimport cv2# 读取图像image = cv2.imread("image.jpg")# 获取图像的宽度和高度height, width = image.shape[:2]# 遍历图像的每个像素点for y in range(height):for x in range(width):# 将红色通道值设置为0image[y, x, 2] = 0# 显示图像cv2.imshow("Image", image)cv2.waitKey(0)cv2.destroyAllWindows()```通过以上代码,我们可以将图像中的红色分量去掉,并显示出结果图像。

adaptivethreshold函数

adaptivethreshold函数AdaptiveThreshold函数是OpenCV计算机视觉库中的一个重要的函数,它可以帮助用户在图像处理过程中,更好地进行阈值分割。

对于图像处理来说,阈值分割是一种非常重要的技术,它可以将图像分割成具有不同亮度和对比度的不同部分。

因此,对于图像分析和图像处理来说,使用AdaptiveThreshold函数是非常必要和重要的。

下面分步骤详细介绍AdaptiveThreshold函数的使用:1.导入头文件。

在编写程序之前,我们需要导入OpenCV库的头文件。

AdaptiveThreshold函数是一个在opencv2/imgproc/imgproc.hpp中定义的函数,因此我们需要一个包含该库的头文件。

2.定义变量并载入图像。

在使用AdaptiveThreshold函数的过程中,我们需要定义一些变量来存储函数的返回结果。

这些变量包括源图像、目标图像、分割类型、二进制阈值等。

为了方便起见,我们通常可以使用cv::Mat类来定义这些变量。

3.设置参数。

AdaptiveThreshold函数的调用需要设置一些参数,包括源图像、目标图像、二进制阈值和分割类型等参数。

4.调用函数。

在设置参数之后,我们可以调用AdaptiveThreshold函数以获得函数的返回结果。

该函数会将源图像进行阈值分割,并将结果存储在目标图像中。

5.显示结果。

最后,我们可以使用cv::imshow函数将目标图像显示出来,以便于我们查看函数的分割效果。

总之,AdaptiveThreshold函数是OpenCV计算机视觉库中非常有用的一个函数,它可以帮助我们更好地进行阈值分割,并将分割结果存储在目标图像中。

在图像处理和计算机视觉应用中,使用AdaptiveThreshold函数是非常重要的,它可以帮助我们更好地进行图像分析和处理,提高我们的工作效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

openCV之头文件分析我们利用openCV开源库进行项目开发时,往往要牵涉到头文件的添加问题,而o penCV中头文件众多,该如何选择呢?下面对openCV2.4.10的头文件进行一个简单的梳理,以便能够快速的添加对应的头文件。

1、首先看下opencv文件夹中的头文件其中cv.h中包含的头文件:#include "opencv2/core/core_c.h"#include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc_c.h"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/video/tracking.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/flann/flann.hpp"#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/legacy/compat.hpp"cv.hpp中包含头文件:#include <cv.h>也就是说cv.hpp是包含cv.h的,程序中凡用到cv.h的地方都可以用cv.hpp 替换,那么为什么又要设置hpp文件呢?hpp是Header Plus Plus的简写,与 *.h 文件类似。

但与之不同的是,*.hpp将*.cpp中的实现代码也写入其中,使得定义与实现都包含在同一文件中。

这样做带来的好处显而易见,无需再将cpp文件添加到项目中编译,减少了编译次数,也不用发布烦人的lib,dll 文件,因此非常适合用来编写公用的开源库。

文件夹opencv中的头文件都是类似的,均包含文件夹opencv2里的头文件。

所以我们如果是从低版本的opencv学习过渡到高版本的opencv的话,如果不适应可以先以opencv文件夹里的文件调用为标准。

如果熟悉opencv里的函数分布,也可以直接调用open cv2文件夹里的具体头文件,这样在头文件预编译提高效率。

2、接下来看文件夹opencv2中的文件先看opencv.hpp文件:#include "opencv2/core/core_c.h"#include "opencv2/core/core.hpp"#include "opencv2/flann/miniflann.hpp"#include "opencv2/imgproc/imgproc_c.h"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/photo/photo.hpp"#include "opencv2/video/video.hpp"#include "opencv2/features2d/features2d.hpp"#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/calib3d/calib3d.hpp"#include "opencv2/ml/ml.hpp"#include "opencv2/highgui/highgui_c.h"#include "opencv2/highgui/highgui.hpp"#include "opencv2/contrib/contrib.hpp"很明显opencv.hpp的头文件包含了opencv库里的所有头文件。

接着看opencv_modules.hpp文件:#define HAVE_OPENCV_CALIB3D#define HAVE_OPENCV_CONTRIB#define HAVE_OPENCV_CORE#define HAVE_OPENCV_FEATURES2D#define HAVE_OPENCV_FLANN#define HAVE_OPENCV_GPU#define HAVE_OPENCV_HIGHGUI#define HAVE_OPENCV_IMGPROC#define HAVE_OPENCV_LEGACY#define HAVE_OPENCV_ML#define HAVE_OPENCV_NONFREE#define HAVE_OPENCV_OBJDETECT#define HAVE_OPENCV_OCL#define HAVE_OPENCV_PHOTO#define HAVE_OPENCV_STITCHING#define HAVE_OPENCV_SUPERRES#define HAVE_OPENCV_TS#define HAVE_OPENCV_VIDEO#define HAVE_OPENCV_VIDEOSTAB其解释如下:[calib3d]: 其实就是就是Calibration(校准)加3D这两个词的组合缩写。

这个模块主要是相机校准和三维重建相关的内容。

基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等等。

[contrib]:也就是Contributed/Experimental Stuf的缩写,该模块包含了一些最近添加的不太稳定的可选功能,不用去多管。

2.4.10里的这个模块有新型人脸识别,立体匹配,人工视网膜模型等技术。

[core]: 核心功能模块,包含如下内容OpenCV基本数据结构动态数据结构绘图函数数组操作相关函数辅助功能与系统函数和宏与OpenGL的互操作[imgproc]: Image和Processing这两个单词的缩写组合。

图像处理模块,这个模块包含了如下内容线性和非线性的图像滤波图像的几何变换其它(Miscellaneous)图像转换直方图相关结构分析和形状描述运动分析和对象跟踪特征检测目标检测等内容[features2d]: 也就是Features2D, 2D功能框架,包含如下内容特征检测和描述特征检测器(Feature Detectors)通用接口描述符提取器(Descriptor Extractors)通用接口描述符匹配器(Descriptor Matchers)通用接口通用描述符(Generic Descriptor)匹配器通用接口关键点绘制函数和匹配功能绘制函数[flann]: Fast Library for Approximate Nearest Neighbors,高维的近似近邻快速搜索算法库,包含两个部分:快速近似最近邻搜索和聚类[gpu]: 运用GPU加速的计算机视觉模块[highgui]: 也就是high gui,高层GUI图形用户界面,包含媒体的I / O输入输出,视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容[legacy]: 一些已经废弃的代码库,保留下来作为向下兼容,包含如下相关的内容运动分析期望最大化直方图平面细分(C API)特征检测和描述(Feature Detection and Description)描述符提取器(Descriptor Extractors)的通用接口通用描述符(Generic Descriptor Matchers)的常用接口匹配器[ml]: Machine Learning,机器学习模块,基本上是统计模型和分类算法,包含如下内容统计模型(Statistical Models)一般贝叶斯分类器(Normal Bayes Classifier)K-近邻(K-NearestNeighbors)支持向量机(Support Vector Machines)决策树(Decision Trees)提升(Boosting)梯度提高树(Gradient Boosted Trees)随机树(Random Trees)超随机树(Extremely randomized trees)期望最大化(Expectation Maximization)神经网络(Neural Networks)MLData[nonfree]: 也就是一些具有专利的算法模块,包含特征检测和GPU相关的内容。

最好不要商用,可能会被告哦。

[objdetect]: 目标检测模块,包含Cascade Classification(级联分类)和Latent SVM这两个部分。

[ocl]: 即OpenCL-accelerated Computer Vision,运用OpenCL加速的计算机视觉组件模块[photo]: 也就是Computational Photography,包含图像修复和图像去噪两部分[stitching]: images stitching,图像拼接模块,包含如下部分:拼接流水线特点寻找和匹配图像估计旋转自动校准图片歪斜接缝估测曝光补偿图片混合[superres]: SuperResolution,超分辨率技术的相关功能模块[ts]:opencv测试相关代码,不用去管他[video]: 视频分析组件该模块包括运动估计,背景分离,对象跟踪等视频处理相关内容[Videostab]: Video stabilization,视频稳定相关的组件3、参考文献[1] /pro/html/201404/12370.html(本文中绝大部分内容出自此博客)[2] /item/HPP?fr=aladdin。

相关文档
最新文档