基于OpenCV下的VisualC_数字图像处理方法_第1页
基于OpenCV下的VisualC_数字图像处理方法_第2页
基于OpenCV下的VisualC_数字图像处理方法_第3页
基于OpenCV下的VisualC_数字图像处理方法_第4页
基于OpenCV下的VisualC_数字图像处理方法_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、现代计算机2012.04基于OpenCV 下的Visual C+数字图像处理方法*滕俊,王弟林,文汉云(长江大学计算机科学与技术学院,荆州434023关键词:OpenCV ;Visual C+;Adaboost 算法;图像处理*基金项目:长江大学大学生创新性实验计划(No.0928收稿日期:2012-03-06修稿日期:2012-04-06作者简介:滕俊(1990-,女,在读硕士研究生,研究方向为计算机与地球物理测井等OpenCV 是一个开放源代码的机器视觉库,在应用Visual C+进行程序开发的过程中,可以直接调用OpenCV 视觉库中的特定函数,开发出自己的图像处理程序。通过示例程序“人

2、脸识别”,阐述将Visual C+与OpenCV 相结合进行数字图像处理程序开发的过程。摘要:1OpenCV 的简介OpenCV (Open Source Computer Vision Library 是Intel 公司面向应用程序开发者开发的计算机视觉库。它轻量级而且高效,由一系列C 函数和少量C+类构成,同时提供了MatLab 等语言的接口,实现了图像处理和计算机视觉方面很多通用算法,因此极大地方便了图像处理和视频技术的二次开发。OpenCV 具备强大的图像和矩阵运算能力,有效提高开发效率和程序运行的可靠性。开发者可根据需要在Windows 和Linux 两种平台进行开发。2OpenCV

3、 的体系结构OpenCV 主体分为五个模块,其中四个模块如图1所示。OpenCV 的CV 模块包含基本的图像处理函数和高级的计算机视觉算法。MLL 是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI 包含图像和视频输入/输出的函数。CXCore 包含OpenCV 的一些基本数据结构和相关函数。图1中并没有包含OpenCV 中另外一个模块:CvAux 模块,该模块中一般存放一些即将被淘汰的算法和函数,同时还有一些新出现的实验性的算法和函数。图1OpenCV 的基本结构3基于OpenCV 的人脸识别原理本文采用OpenCV 实现人脸检测是基于Adaboost算法。该算法根据弱学习的反馈

4、,适应性地调整假设的错误率,在效率不降低的情况下,使检测正确率得到了很大的提高。它的核心思想是针对同一个训练集训练不同的分类器(弱分类器,这些分类器只需要满足比随机猜测好一点,就能通过不断地修正每个弱分类器的权值,从而最终形成由这些分类器组成的强分类器,相比较其他的方法而言,Adaboost 方法对每个弱分类器的权值的形成都是无人值守的,完全自动化的。算法本身是通过改变数据分布来实现的,其根据训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改了权值的新数据集传给下层的分类器进行训练。最后将每次训练得到的分类器融合起来,作为最终的决策分类器。使用Ad -ab

5、oost 分类器可以排除一些不必要的训练数据特征,并!"#$%& (* +,趪趭现代计算机2012.04将必要的放在重要的训练数据上。图2给出了Ad -aboost 人脸检测算法进行训练和检测的流程图。图2Adaboost 训练、检测的流程4基于OpenCV 的人脸识别程序设计4.1环境配置在使用OpenCV 视觉库之前必须正确安装并在应用程序中设置好与OpenCV 的连接,才可以直接调用其中的图像处理函数,具体步骤如下:(1安装OpenCV 1.0应用程序,在Visual C+2005中配置全局选项。首先,在库文件列表中,定位并添加:C:ProgramFilesOpenCV

6、lib 。在Include Files 中添加相应头文件:cxcorein -clude ,cvinclude ,cvauxinclude mlinclude ,otherlibshighgui ,otherlibscvcaminclude ,C:Program FilesMicrosoft Platform SDKInclude 。最后在source files 添加资源文件:cvsrc ,cxcoresrc ,cvauxsrc ,otherlibs 。(2新建人脸识别项目程序打开Visual C+2005,创建一个“Win32”类型的工程,将“OpenCVdatahaarcascades

7、”目录下的数据文件haarcascade_frontalface_alt.xml 复制到工程目录文件夹中。数据文件haarcascade_frontalface_alt.xm 就是人脸检测时所用到的分类器。(3设置项目所需要的lib菜单Project Properties Configuration Proper -ties Linker Input 在additional dependencies 中加入cxcore.lib 、cv.lib 、ml.lib 、cvaux.lib 、highgui.lib 等需要的库。4.2人脸检测程序的开发(1利用OpenCV 进行人脸检测人脸识别一般包括三

8、个步骤:人脸检测、人脸特征提取和人脸的识别与验证。其处理流程如图3所示。图3人脸识别的一般步骤本程序使用OpenCV 中提供的“haarcascade_frontalface_alt.xml ”文件存储的目标检测分类,用cvLoad 函数载入后,进行强制类型转换。OpenCV 中提供了用于检测图像中目标的函数cvHaarDetectObjects ,该函数使用指针对目标物体训练的级联分类器在图像中找到包含目标物体的矩形区域,并将这些区域作为一序列的矩形框返回。分类器在使用后需要被显式释放。相关函数的原型请参看有关OpenCV 手册。(2程序实现新建一个Visual C +Win32项目,取名为

9、“Test ”。添加相关头文件。检测人脸调用函数CvSeq*cvHaarDetectObjects(const CvArr*image,CvHaarClassifierCascade*cascade,CvMemStorage*storage,double scale_factor =1.1,int min_neighbors =3,int flags =0,CvSize min_size =cvSize(0,0该函数通过不同的窗口扫描输入图像来寻找人脸。设置scale_factor 参数可以决定每两个不同大小的窗口之间有多大的跳跃;这个参数设置得大,则意味着计算会变快,但如果窗口错过了某个大小

10、的人脸,则可能丢失物体。参数min_neighbor 控制着误检测,现实图像中的脸会被多次检测到,因为周围的像素和不同大小的窗口也会检测到人脸。在人脸识别代码中设置这个参数为默认值(3表明只有至少有3次重叠检测,才能确实人脸存在。CvArr*image 是一个灰度图像,一旦设置了感兴趣的区域(ROI ,那么函数就只会处理这个区域。因此,趪趮现代计算机2012.04Visual C+Digital Image Processing MethodBased on OpenCVTENG Jun,WANG Di-lin ,WEN Han-yun(College of Computer Science,

11、Yangtze University,Jingzhou 434023Keywords:OpenCV;Visual C+;Adaboost Algorithm;Image ProcessingOpenCV is a machine vision library with open source code,in the application of the VisualC+program development process,you can directly calls to specific functions in the OpenCV vision library to develop y

12、our own image processing program.Shows the combination of Visual C+and OpenCV in digital image processing by taking face recognition as an sample.Abstract:提高人脸识别速度的一个方法是使用ROI 裁减图像边界。分类器cascade 是我们通过cvLoad(加载的Haar 特征级联。参数storage 是该算法的工作缓存。它由cvCreateMenStorage(来分配,由cvClearMenStorage(释放。程序编写完毕后,在程序中调用OpenCV 类库函数,最后编译连接,生成应用程序“Test.exe ”。其中,运行程序后,处理结果如图4所示。图4程序执行结果5结语OpenCV 的可移植性好,具备强大的图像和矩阵运算能力,可大大减少开发者的工作量,有效提高开发效率和程序运行的可靠性,已经得到广泛的应用。运用Visual C+与OpenCV 结合进行程序开发,也使视频图像处理技术得到了新的发展。参考文献1布拉德斯基,克勒.学习OpenCV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论