欢迎来到天天文库
浏览记录
ID:29598928
大小:357.50 KB
页数:6页
时间:2018-12-21
《利用opencv实现人脸检测》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用OpenCV实现人脸检测摘要OpenCV全称是是指开放的计算机视觉资源代码,它具有统一的结构和功能定义、强大的图像和矩阵运算能力、方便灵活的接口等特点。本文介绍了在VisualC++2005环境下,利用OpenCV函数库来开发人脸检测程序的方法,简单、方便,并具有较强的实用价值。关键词OpenCV,人脸,检测如何在一副图片中检测到人脸,这涉及到计算机图形学中一些非常复杂的计算,如果这些计算都靠程序员自己来编程,那么工作量就相当大。OpenCV全称是OpenComputerVision,是指开放的计算机视觉资源代码,它具有
2、:统一的结构和功能定义、强大的图像和矩阵运算能力、方便灵活的接口等特点,是计算机视觉、图像处理和模式识别等方面进行二次开发的理想工具。它可以在各种版本的Windows下运行,也可以在Linux下运行。OpenCV的源代码是用C和C++所编写且完全开放的,因此具有很好的可移植性,在MicrosoftVisualC++6.0、MicrosoftVisualStudio2003及BorlandC++BuilderX等环境下均可方便地使用OpenCV所提供的库来进行实际开发。本程序以VisualC++2005作为开发环境来介绍。一、
3、OpenCV在VisualC++2005下的安装与配置1.OpenCV安装首先到OpenCV的官方网站(http://sourceforge.net/projects/opencvlibrary)下载OpenCV并进行安装,安装过程很简单,只要按照安装向导一步一步进行即可。2.对VisualC++2005进行全局设置1)打开VisualC++2005,选择“Tools(工具)
4、Options(选项)”菜单项,弹出如图1所示的对话框。2)在左侧列表框中选择“ProjectsandSolutions(项目和解决问题方案)
5、VC+
6、+Directories(VC++目录)”。3)在“Showdirectoriesfor(显示以下内容的目录)”下拉列表框中选择“LibraryFiles(库文件)”。4)在右侧库文件列表框中定位并添加“OpenCVlib”。图15)在“Showdirectoriesfor(显示以下内容的目录)”下拉列表框中选择“IncludeFiles(包含文件)”,并在右侧列表框中定位并添加以下路径:OpenCVcxcoreincludeOpenCVc
7、vincludeOpenCVcvauxincludeOpenCVmlincludeOpenCVotherlibshighguiOpenCVotherlibscvcamincludeOpenCVMicrosoftPlatformSDKInclude⑥单击OK(确定)按钮保存配置。3.对VisualC++2005项目进行设置新建一个项目后,需要设置项目所需的链接库。选择“Pro
8、ject(项目)
9、Properties(属性)”菜单项,弹出如图2所示的对话框,在左侧的列表框中选择“ConfigurationProperties(配置属性)
10、Linker(链接器)
11、Input(输入)”,在右侧列表框中选择“AdditionalDependencies(附加依赖项)”,在其右侧的文本框中输入“cxcore.libcv.libml.libhighgui.libcvaux.lib”等需要的库(用空格分隔)。图2二、人脸检测程序的开发人脸检测是一个非常先进的问题,它是人脸研究的一个主要方向,其任务是对于一幅给定
12、的图像,采用一定的策略对其进行搜索,以确定其中是否含有人脸、含有多少个人脸,以及所含人脸的位置、大小和姿态。人脸检测的算法很多,Adaboost算法是其中的一种,Adaboost算法虽然十分复杂,但应用OpenCV提供的函数和分类器进行人脸检测将是十分容易。1.利用OpenCV进行人脸检测人脸检测程序主要完成3部分功能,即加载分类器、加载待检测图象以及检测并标示。本程序使用OpenCV中提供的“haarcascade_frontalface_alt.xml”文件存储的目标检测分类,用cvLoad函数载入后,进行强制类型转换。
13、OpenCV中提供的用于检测图像中目标的函数是cvHaarDetectObjects,该函数使用指针对某目标物体(如人脸)训练的级联分类器在图象中找到包含目标物体的矩形区域,并将这些区域作为一序列的矩形框返回。分类器在使用后需要被显式释放,所用的函数为cvReleaseHaarClassi
此文档下载收益归作者所有