了解OpenCV

了解OpenCV
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.


作者: 61.132.138.* 2007-7-11 14:33   回复此发言

2 了解OpenCV

-         在 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/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 ),可以在那里找到很多有用资料。

opencv 是 Intel 的图像处理库,实现 图像的基本处理 ,如 膨胀,二值化处理,如果要学习,可以到http://sourceforge.net/projects/opencvlibrary/
下载 安装。
OpenCV是Intel公司开发的图像处理和计算机视觉函数库,它有以下特点:
1) 开放C源码

2) 基于Intel处理器指令集开发的优化代码

3) 统一的结构和功能定义

4) 强大的图像和矩阵运算能力

5) 方便灵活的用户接口

6)同时支持MS-WINDOWS、LINUX平台

作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OPENCV可以直接应用于很多领域,作为第二次开发的理想工具。不过在利用OPENCV做商业开发应用前,请仔细阅读OPENCV包所附带的 PUBLIC LICENSE。

一些基本的资料可以参考:

=》源代码及文档下载:SOURCEFORGE.NET

http://sourceforge.net/projects/opencvlibrary/

=》INTEL的OPENCV主页:

http://www.intel.com/research/mrl/research/opencv/

=》YAHOO OPENCV 的邮件列表:

http://groups.yahoo.com/group/OpenCV/

=》CMU(卡耐基-梅隆大学)的计算机视觉主页:

http://www-2.cs.cmu.edu/afs/cs/project/cil/ftp/html/vision.html

=》OPENCV 更为详细的介绍

http://www.assuredigit.com//incoming/sourcecode/opencv/chinese_docs/index.htm

=》OPENCV 的常用问题与解答

http://www.assuredigit.com//incoming/sourcecode/opencv/chinese_docs/faq.htm

=》OPENCV 的安装指南

http://www.assuredigit.com//incoming/sourcecode/opencv/chinese_docs/install

=》更多的最新资料,请访问

http://blog.csdn.net/hunnish

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值