关闭

OPENCV的介绍

1279人阅读 评论(0) 收藏 举报
导读:
OpenCV是Intel资助的开源计算机视觉库。它由一系列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的最新版本是2006年11月发布的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版本时,要做的事情,简单而言是:
  参考本书以及OpenCV安装包中提供的例子:大量的样例程序是了解OpenCV最直接的方法,OpenCV本身所提供的例子均放置于: <opencv_root>/samples/ 目录下,<opencv_root>表示安装OpenCV后的系统目录。
  在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/OpenCVOpenCVarchives 搜索你感兴趣的主题。
  从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 ),可以在那里找到很多有用资料。
  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1401563
        本文转自
http://blog.csdn.net/hunnish/archive/2006/11/21/1401563.aspx  
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:174165次
    • 积分:1192
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:31篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论