OpenCV:概述、结构和内容

来源:互联网 发布:英语软件哪个比较好 编辑:程序博客网 时间:2024/06/06 23:11

1、OpenCV的定义:
     OpenCV的英文全称是Open Source Computer Vision Library。它是一个开源的计算机视觉库,它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

2、OpenCV的特点:

       (1)OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。

       (2)OpenCV提供了Python、Ruby、MATLAB以及其他语言的接口。

       (3)它采用优化的C代码编写,能够充分利用多核处理器的优势

       (4)具有良好的可移植性

3、OpenCV的设计目标:

       执行速度尽量快,主要关注实时应用。如果是希望在Intel平台上得到更快的处理速度,可以购买Intel的高性能多媒体函数库IPP(Integrated Performance Primitives)。IPP库包含许多从底层优化的函数,这些函数涵盖多个应用领域。如果系统已经安装了IPP库,OpenCV会在运行时自动使用相应的IPP库。

      【注】:OpenCV使用优化了的C和C++代码实现,因此它对IPP不存在任何的依赖。

4、OpenCV的应用领域
      (1)人机互动       (2)物体识别          (3)图象分割    (4)人脸识别       (5)动作识别   (6)运动跟踪      (7)机器人       (8)运动分析     (9)机器视觉      (10)结构分析

5、OpenCV的结构和内容

 

   OpenCV主体分为五个模块,其中四个模块如下图所示。

OpenCV的CV模块包含基本的图像处理函数和高级的计算机视觉算法。ML是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCore包含OpenCV的一些基本数据结构和相关函数。
【具体内容如下】:

      (1) cxcore
                 基础结构:CvPoint,CvSize,CvScalar等
                 数组操作:cvCreateImage,cvCreateMat等
                 动态结构:CvMemStorage,CvMemBlock等
                 绘图函数:cvLine,cvRectangle等
                 数据保存和运行时类型信息:CvFileStorage,cvOpenFileStorage等
                 错误处理和系统函数:cvGetErrStatus,cvAlloc,cvFree等

      (2) cv

                  图像处理:cvSobel,cvCanny等
                  结构分析:ContourArea等
                  运动分析与目标跟踪:cvMeanShift等
                  模式识别:CvHaarFeature
                  摄像头定标与三维重建:cvCalibrateCamer2

       (3)Machine Learning(ML)
                 包含许多聚类、分类和数据分析函数。如Bayes分类器,K近邻算法,支持向量机,决策树,神经网络等等。

       (4)HighGUI

                 图像界面函数: cvNamedWindow

                 读图像和保存图像:cvLoadImage,cvSaveImage

                 读视频和写视频:CvCreateFileCapture等

       (5)cvcam 

                  摄像机接口,在Opencv1.0以后的版本中已经被移除

       (6)cvaux

                该模块中一般存放一些即将被淘汰的算法和函数(如基于嵌入式隐马尔科夫的人脸识别算法),还包含一些实验性的算法和函数(前景检测,背景剔除等)

原文地址:http://blog.csdn.net/xiaofeilong321/article/details/8841125