`
touchmm
  • 浏览: 1042905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

OPENCV的介绍

阅读更多

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

OpenCV 拥有包括 300 多个C/C++函数的跨平台的中、高层 API。它不依赖与其它的外部库,尽管也可以使用某些外部库。

OpenCV 对非商业应用和商业应用都是免费(FREE)的。(细节参考发布版本的 license)。 另外OpenCV 也为Intel公司的 Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器(当然是INTEL的处理器了)优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。

更多关于 IPP 的信息请参考: http://www.intel.com/software/products/ipp/index.htm

  • 总纲:
    • C/C++编写的开源计算机视觉库。
    • 目的是为了实时应用。
    • 独立于操作系统/硬件/图形管理器。
    • 通用的图像/视频载入、保存和获取模块。
    • 底层和高层的应用开发包。
  • 特征:
    • 图像数据的操作 ( 分配、释放、复制、设置和转换)
    • 图像是视频的输入输出I/O (文件与摄像头的输入、图像和视频文件输出)。
    • 矩阵和向量的操作以及线性代数的算法程序(矩阵积、解方程、特征值以及奇异值等)。
    • 各种动态数据结构(列表、队列、集合、树、图等)。
    • 基本的数字图像处理(滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图、图像金字塔等)。
    • 结构分析(连接部件、轮廓处理、距离变换、各自距计算、模板匹配、Hough变换、多边形逼近、直线拟合、椭圆拟合、Delaunay 三角划分等)。
    • 摄像头定标(发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计、立体对应)。.
    • 运动分析(光流、运动分割、跟踪)。
    • 目标识别(特征法、隐马尔可夫模型:HMM)。
    • 基本的GUI (图像与视频显示、键盘和鼠标事件处理、滚动条)。
    • 图像标注(线、二次曲线、多边形、画文字)
  • OpenCV 模块:
    • cv 主要的OpenCV 函数。
    • cvaux 辅助的(实验性的)OpenCV 函数。
    • cxcore 数据结构与线性代数支持。
    • highgui 图像界面函数。

目前OpenCV方面的资源已经很多了,当然最简单的方法还是在网上搜索一下,比如在在 Google (http://www.google.com )中输入 "OpenCV" 进行相关搜索。这里给出一些作为参考:

  • 参考手册:
    • 英文<opencv- root >/docs/index.htm
    • 中文:http://www.opencv.org.cn/
  • 网络资源::
    • 官方网站:http://www.intel.com/technology/computing/opencv/
    • 中文官方网站:http://www.opencv.org.cn/
    • 软件下载:http://sourceforge.net/projects/opencvlibrary/
  • 书籍:
    • Open Source Computer Vision Library by Gary R. Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006).
  • 视频处理的样例程序 ( <opencv-root>/samples/c/)
    • 彩色跟踪:camshiftdemo
    • 点跟踪:lkdemo
    • 运动分割:motempl
    • 边缘检测: laplace
  • 图像处理的样例程序(在 <opencv-root>/samples/c/):
    • 边缘检测: edge
    • 分割:pyramid_segmentation
    • 形态学操作: morphology
    • 直方图:demhist
    • 距离变换:distrans
    • 椭圆拟合:fitellipse

目前OpenCV的最新版本是 200611月发布的 OpenCV 1.0 版,它的一些新特性包括:

  • 新函数与新特征
    • 支持的新编译器/环境:

- GCC 4.x

- Visual Studio .NET 2005.

注意:

工程文件 .vcproj's 以及相应的环境文件均被转换成 VS.NET 2005 的格式,因此它们不能被 VS.NET 2003 打开。作为工作区,可以将工程文件和工作区转换为 Visual Studio 6.0,再转换到 VS.NET 2003。工程可以在 Win32 以及 x64 (a.k.a. EM64T/AMD64) 平台上编译。默认情况下支持 OpenMP.

- MacOSX 上,通用的 OpenCV 二进制代码可以在缺省情况下编译,因此 PPC INTEL MAC‘S 系统全部都支持。

- 取消了对 Borland C++ 的支持,但是仍然有一个脚本文件 utils\gen_make.py 可以通过生成文件makefile.bcc's 来编译 (没有在 RC1 上测试)。

- 新的命令行 makefiles _make\makefile.* 被引入,允许用户在 Win64 (EM64T/AMD64 and Itanium) 平台上编译 OPENCV。具体细节参考文件 INSTALL

    • cxcore

- 增加了一些新的函数:cvMixChannels, cvRandShuffle, cvRange, cvCalcPCA, cvProjectPCA, cBackProjectPCA, cvNormalize, cvReduce, cvGetNumThreads, cvSetNumThreads, cvGetThreadNum. 更多细节参考 <opencv_root>/docs/ref/opencvref_cxcore.htm

- 扩展了函数 cvCalcCovarMatrix, cvMulTransposed

- 为库增加宏: cxcore/include/cvver.h

- CvImage CvMatrix 增加 C++ 类:cxcore/include/cxcore.hpp 以及样例 samples/c/image.cpp

- 矩阵的最大通道数增加到 64 个,尽管只有一些特殊函数才处理这样的图像。

    • cv

- 新函数:cvPyrMeanShiftFiltering, cvWatershed, cvGetAffineTransform. 更多细节见docs/ref/opencvref_cv.htm

- 扩展:cvDistTransform(true distance transform algorithm), cvThresh (Otsu adaptive algorithm), cvCanny(使用真实梯度)

- 所有的滤波函数重新编写过,为线性可分以及不可分滤波增加了新的 C++ ,并增加了morphology, laplace, box filer . cv/include/cv.hpp.

  • API 的变化:
    • cvCamShift, cvBoxPoints以及所有其它与角度有关的函数,现在都用角度而不是弧度返回
    • cvaux:

- 增加了新的大型视频监控模块,见(cvaux/src/vs and cvaux/include/cvvidsurv.h)。该模块完善了智能目标跟踪功能,见 docs/vidsurv 中的描述。

    • ml (机器学习)

- 这是一个全新的为统计分类、回归以及聚类而写的 C++ 类库. docs/ref/opencvref_ml.htm.

-

    • highgui

- 所有的视频捕捉的代码在结构上都重新构造并且按模块划分,采用了更好的函数名字(原有的函数名字通过宏仍然支持)。

- 增加了对 Quicktime (MacOSX) Xine (Linux, (注意查看相关的许可)!)) 的支持.

    • 捆绑与界面:

- 现在支持 IPP 5.1.*,而这是一个推荐与OPENCV一起使用的版本。用户可以执行建立单独的IPP DLL 作为二进制版本的分发。见(interfaces/ipp)

- 大大提高并扩展了与 Python 的绑定( interfaces/swig[/python] 以及 samples/python).

  • 优化
    • 应用新的 IPP5.1 功能,下列的滤波函数都被大大优化:cvSobel, cvLaplace, cvErode, cvDilate.
    • cvFilter2D对于大的内核运行得更快 (使用基于 DFT 的算法)
    • 一些函数可以使用 OPENMP 做并行处理:cvHaarDetectObjects, cvCalcOpticalFlowPyrLK, cvDistTransform(只是对于新算法适用)。因此它们的运行速度在双核CPU上要快 ~50-80% , 当代码用 Intel compiler 或者 MSVC2005 编译时。

OpenCV是一个开源的项目,它的成长与完善均依赖于广大而热情的参与者,因此了解OpenCV的最有效方法无疑是通过互联网来自我学习和认识。当你拿到一个OpenCV版本时,要做的事情,简单而言是:

  1. 参考本书以及OpenCV安装包中提供的例子:大量的样例程序是了解OpenCV最直接的方法,OpenCV本身所提供的例子均放置于:<opencv_root>\samples\ 目录下,<opencv_root>表示安装OpenCV后的系统目录。
  2. Visual Studio 中加载 OpenCV workspace

  • Microsoft Visual Studio 6.0 使用 opencv.dsw

  • Miscrosoft Visual Studio .NET 2003 使用 opencv.sln

  • Borland C++ BuilderX 使用 cbuilderx/opencv.bpgr
    选择 cvsample 项目,编译并运行。阅读代码并且按照自己的想法更改它。
  • http://groups.yahoo.com/group/OpenCVOpenCV archives 搜索你感兴趣的主题。

  • scratch 创建新的项目,或者修改现有的 cvsample 有专门为 Microsoft Visual Studio 设计的 application wizard 用来创建 OpenCV-aware 项目;它们从 http://groups.yahoo.com/group/OpenCV Files section - 你必须注册为 OpenCV@yahoogroups.com 用户)查找到。

  • 参加OpenCV的邮件组,具体方法是发送邮件到 OpenCV-subscribe@yahoogroups.com,成为成员後并登录後,你可以在 http://groups.yahoo.com/group/OpenCV 阅读内容。 另外也可以访问国内的一些OpenCV站点,如:OpenCV中文站点(http://www.opencv.org.cn)以及 阿须数码 中文OPENCV论坛http://www.assuredigit.com/forum ,可以在那里找到很多有用资料。
  • 分享到:
    评论

    相关推荐

      01-概述 - OpenCV介绍与环境搭建.rar

      本资料“01-概述 - OpenCV介绍与环境搭建”旨在帮助初学者理解OpenCV的基本概念,并指导如何在不同的操作系统上设置开发环境。 首先,OpenCV的核心功能包括图像读取、显示、处理和保存。它支持多种图像格式,如JPEG...

      OpenCV介绍以及案例代码.doc

      ### OpenCV介绍 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,采用C/C++编写,但也提供Python等语言接口。它具有以下主要特点和功能: 1. **开源性**:OpenCV允许任何人自由地使用、...

      #1 - OpenCV介绍.pdf

      ### OpenCV介绍 #### 1.1 OpenCV-Python教程简介 **OpenCV**(Open Source Computer Vision Library)是一款开放源代码的计算机视觉库,它包含了大量的图像处理和计算机视觉的相关算法。OpenCV最初由Gary Bradsky...

      OpenCV介绍.pptx

      OpenCV介绍.pptx

      OpenCV 介绍 起源

      ### OpenCV 介绍与起源 #### 一、OpenCV概述 **OpenCV**(开源计算机视觉库)是一款专为图像处理和计算机视觉设计的强大工具包。它最初由英特尔开发,并于1999年发布。随着时间的发展,OpenCV逐渐成为了一个国际化...

      opencv介绍

      ### OpenCV介绍 #### 一、OpenCV简介 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,主要用于图像处理、视频分析以及计算机视觉应用的开发。它支持多种编程语言,如C++、Python等,...

      opencv介绍及例子

      OpenCV(开源计算机视觉库)是一个强大的跨平台计算机视觉库,由它提供的API能帮助开发者实现各种图像处理和计算机视觉任务。"于仕琪"可能是这个资料的作者或讲解者,他分享了一些关于OpenCV的知识和示例。 OpenCV...

      opencv介绍.pdf

      国内的社区和博客,例如CSDN,也有许多关于OpenCV的教程和讨论,比如一个博客文章链接: ***,详细介绍了OpenCV的一些基本知识。另外的文章链接: ***,提供了关于视频处理方面的技术讨论。 总之,OpenCV作为一个功能...

      OpenCV基础教程.pptx

      OpenCV基础教程主要介绍了OpenCV这一强大的计算机视觉库在图像处理和分析领域的应用。OpenCV在全球范围内的使用率非常高,特别是在医疗诊断和无人驾驶汽车领域,它的功能和效率使其成为不可或缺的工具。 首先,...

      计算机视觉与OpenCV介绍.pdf

      计算机视觉方面的一个C++库的说明,opencv近几年来发展很快,学习一下拉

      一个介绍opencv基础的ppt

      #### 四、OpenCV模块介绍 OpenCV的核心模块涵盖了计算机视觉的基本需求,包括但不限于: - **核心模块**:提供基本的数据结构和操作,例如图像和矩阵的操作。 - **图像处理模块**:包括图像变换、滤波器等图像处理...

      Opencv-ppt-code

      Opencv 基础入门代码和ppt,是很好的入门材料。仅仅可以用于个人学习, 不能商用

      opencv tutorials

      1. OpenCV介绍与安装 - OpenCV是一个开源的计算机视觉和机器学习软件库,广泛应用于图像处理、视频分析、人脸识别等领域。 - 在Linux系统中的安装步骤,介绍了在Windows系统中的安装流程。 - 对于图像处理的初学...

      opencv2.4.6官方教程

      1. **OpenCV介绍**: - OpenCV是一个开源的、跨平台的计算机视觉库,它包含了500多个优化的算法,这些算法可以用来进行实时图像处理和视觉处理。 2. **OpenCV2.4.6安装指南**: - 提供了在不同操作系统(如Linux...

      OpenCV入门教程.pdf

      OpenCV介绍章节简述了OpenCV的起源及其使用的协议,强调了OpenCV作为一个算法库,为计算机视觉应用提供基础构件的事实。 图像的基本操作章节深入讲解了OpenCV中图像的表示方法,以及如何使用Mat类进行图像的创建、...

      opencv-4.5.3-android-sdk.zip

      1. **OpenCV介绍**: OpenCV是一个跨平台的计算机视觉库,由Intel实验室发起,现在由它自己的非盈利组织——OpenCV.org维护。这个库包含了众多计算机视觉的算法,包括图像处理、特征检测、物体识别、三维重建等,...

      android opencv 实现项目

      1. **OpenCV介绍**:OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了众多图像处理和计算机视觉的算法,支持多种编程语言,包括Java。在Android平台上,开发者可以利用OpenCV进行...

      基于opencv的人脸识别系统

      【OpenCV介绍】 OpenCV(开源计算机视觉库)是一个强大的跨平台计算机视觉库,它包含了大量的图像处理和计算机视觉算法,被广泛应用于机器学习、深度学习、图像分析和人脸识别等领域。OpenCV支持多种编程语言,如...

      OpenCV资料

      1. **OpenCV介绍** OpenCV是由Intel创建并维护的开源项目,起初主要关注实时的图像处理和计算机视觉任务。如今,它已发展成为涵盖图像处理、机器学习、深度学习等多个领域的库,支持C++, Python, Java等多种编程...

      基于OpenCV的二维码检测识别基础demo程序源代码

      【OpenCV介绍】 OpenCV(开源计算机视觉库)是一个跨平台的计算机视觉库,它包含了大量的图像处理和计算机视觉的算法,广泛应用于机器学习、深度学习、图像分析和处理等领域。OpenCV支持C++, Python, Java等多种...

    Global site tag (gtag.js) - Google Analytics