OpenC++V是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS *** 作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。
OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可[1] (开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS *** 作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 最新版本是3.3 ,2017年8月3日发布。
OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV 为Intel® Integrated Performance PrimiTIves (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的 IPP 库, OpenCV 将在运行时自动加载这些库。
VC++是微软公司开发的一个集成开发环境,具有多方面强大的功能,可以利用其开发许多领域的实用软件,数字图像处理也是其主要功能之但纯用VC++处理图像难度很大,仅图像的读入和显示就需要很大的代码量,并要求开发人员必须对图像的内部结构认识清晰且能熟练使用C+t语言。而对于初次使用VC++处理图像的人员来说要做到这些方面确实有一定的难度。OPENCV提供了许多数字图像处理的函数,如果能和VC++结合使用将会在很大程度上降低工作难度,减少工作量。本文以灰度图像的目标提取为例说明OPENCV和VC++结合处理图像的能力。
环境配量在VC++中使用OPENCV函数,首先要将OPENCV函数库嵌入到VC++中。目前OPENCV最典型的版本为1.0和2.0,VC++版本有6.0,2005和2008,若要使用OPENCV2.0则必须使用VC++2005或VC++2008,因为目前OPENCV2.0在VC++6.0中还没有成功案例。本文以OPENCV1.0和VC++6.0作为开发环境。将OPENCV1.0函数库嵌入到VC++6.0的方法很多资料上都有详细的阐述,这里就不做介绍了。
目标提取目标提取的任务是从单幅图像或序列图像中将感兴趣的目标与背最分割开来,用于后续的处理。感兴趣目标的有效提取对于目标分类、身份识别和行为理解等中高层次的任务非常重要,因为后续的处理过程通常只考虑图像中对应于感兴趣区域的像素,并将极大的促进视频编码、检索、人机交互、运动捕捉等课题的研究目标提取技术最常见的处理过程如图1所示:
导入图像
对一幅图像进行处理之前,首先要读取图像的相关数据,为了观察算法的实现效果,还需清楚地看到处理后的图像结果,这就需要读入和显示图像。假若只用VC++,需要开发人员对图像的结构及VC++知识有个深刻的理解,代码量大,运算复杂,这就让很多初学者望而却步,然而在VC++环境下借助OPENCV函数库,可以方便的读入和显示图片。代码如下:
Ip1Image*img=cvLoadImage(“E: \hua.bmp”,-1) ;
cvNamedWindow(“win1”,0) ;
cvShowImage(“win1”,img) ;
cvWai tKey (0) ;
第一句功能为读入图像,需要注意的是表示路径的反斜杠必须为“\”,因为字符串中“\”为转义字符,代表一个“”,参数“-1”表示以原有颜色通道显示图像(还可以选择别的值,在这里就不加说明了); 第二句功能为建立一个名字为“win1“ 的窗口,“0”表示窗 口 大小由系统自动给定; 第三句功能是将图像在“win1” 窗口中显示; 第四句功能为延迟窗口显示时间,按回车键窗口会关闭,假若没有第四局,图像会闪一下消失,用户观察不到具体的图像。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)