VC++opencv静止背景下运动视频对象的分割(4)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

VC++opencv静止背景下运动视频对象的分割(4)


除了Matlab和LEADTOOLS,大部分软件包不支持网络服务器结构的应用程序的开发。Matlab的网络接口机制较为复杂,而且同样存在运行效率的问题。绝大多数软件包不支持可嵌入性。
与以上软件相比,OpenCV具有明显的优势[4]:
1.纯C代码,源代码开放。从20世纪80年代信息技术界开始兴起开放源代码 (open source)这个新名词。源代码是由软件命令电脑执行指定动作的程序语句,是一个软件的核心。最著名的开源软件是芬兰人林努斯•托尔瓦兹提出的Linux。开源软件能够风靡世界,是由于其开源的免费特性以及全球众多编程者的参与。开源软件一般具有简约精炼、资源占用少、功能集中和安全性好的优点。不同于以往各种由业余爱好者凭个人兴趣或是根据自己的项目要求而制作的源代码开发包,OpenCV是由Intel资助的开源项目,其代码规范而且具备良好的后继开发和改进能力。
2.丰富的函数功能以及强大的图像和矩阵运算能力:OpenCV提供了数组、序列、矩阵、树等基本结构,也包含了差分方程求解、傅立叶分析、积分运算、特殊函数等众多高级数学计算函数,以及各种图像处理操作和目标跟踪、摄像机校准、三文重建等高级视觉函数。在图像处理方面具有明显的优势。
3.平台无关性:基于OpenCV开发的程序可以直接在Windows,Unix,Linux,MacOS X,Solaris,HP等平台之间相互移植,无需对代码进行任何修改,有广泛的适用性。
4.程序运行的实时性: 完成调试的代码可以编译连接成二进制可执行文件。从而得到较快的运算速度,可以实现实时性运算。
5.方便灵活的用户接口。OpenCV作为一个开放的计算机视觉函数库,在使用上必然没有Matlab那样解释执行方便。而Softlmegration将CH和OpenCV绑定起来推出的CH OpenCV,解决了这一使用上的瓶颈。
6.可嵌入性:与C语言\C++编译器不同,Ch能嵌在C语言/C++应用程序和硬件的机器脚本中。它减轻了开发文护应用程序的庞大机器代码这一沉重负担,具有统一的结构和功能定义,以及基于Intel处理器指令集开发的优化代码。可见,作为一个基本的图像处理、计算机视觉和模式识别的开源项目,OpenCV可以直接应用于很多领域,作为二次开发的理想工具。
1.6.1 OpenCV安装与环境变量配置
本文采用的硬件为笔记本电脑,系统为64位win7操作系统,CPU为1.8GHz,内存为4G,所用软件为Visual studio 2008,Visual C++ 2008,以及Opencv1.0版本。
安装OpenCV过程中,要注意选中“Add\OpenCV\bin to the system PATH”选项,加入到环境变量PATH中。安装好的OpenCV路径假设为C:\Program Files\OpenCV。在VC++环境下选择菜单,Tools-->Options一>Directories,设置lib路径,选择Library files,将所需要的OpenCV库文件路径包含进来。[3]
创建简单的OpenCV应用程序,可按如下步骤进行:
1.首先新建工程,文件/新建/工程/win32 Ap~plication或者win32 console appiication。
2.创建一个单独的workspace(create new workspace),也可以将新的项目加入到当前的workspace中。
3.点击“next”,之后选择,An empty project/ok。
4.新建工程文件,文件/new/files,选择C++ Source file/ok。
5.添加工程配置,工程/设置/所有配置,选中“连接”标签,在“对象、模块库”中添加“cxcore.1ib CV.1ib m1.1ib cvaux.1ib highgui.1ib cvcanl.1ib”模块库,至此完成了OpenCV编程环境的构建。
1.6.2 Opencv图像结构定义
在OpenCV中,主要使用的图像格式为IplImage,其结构的定义如下:
typedef struct——Ipllmage
{
int nSize; (责任编辑:qin)