Visual-C++利用OpenCV对图像进行人脸识别(傻瓜教程).docx_第1页
Visual-C++利用OpenCV对图像进行人脸识别(傻瓜教程).docx_第2页
Visual-C++利用OpenCV对图像进行人脸识别(傻瓜教程).docx_第3页
Visual-C++利用OpenCV对图像进行人脸识别(傻瓜教程).docx_第4页
Visual-C++利用OpenCV对图像进行人脸识别(傻瓜教程).docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

利用OpenCV检测图像中的人脸工程创建准备:1. 安装Visual C+ 6.0或以上版本,本机安装Visual C+ 6.02. 安装OpenCV及配置OpenCV 1.0在VC6下安装与配置参考网站:安装OpenCV下载OpenCV安装程序。假如要将OpenCV安装到C:Program FilesOpenCV。在安装时选择将OpenCVbin加入系统变量(AddOpenCVbin to the systerm PATH)。 配置Windows环境变量检查C:Program FilesOpenCVbin是否已经被加入到环境变量PATH,如果没有,请加入。 选择高级选项,然后选择“环境变量”,查看是否加入,如果没有则将其加入加入后,在任务管理器里重启explorer.exe配置Visual C+ 6.0全局设置菜单Tools(工具)-Options(选择)-Directories(目录):先设置lib路径,选择Library files,在下方填入路径: C:Program FilesOpenCVlib然后选择include files,在下方填入路径: C:Program FilesOpenCVcxcoreincludeC:Program FilesOpenCVcvincludeC:Program FilesOpenCVcvauxincludeC:Program FilesOpenCVmlincludeC:Program FilesOpenCVotherlibshighguiC:Program FilesOpenCVotherlibscvcaminclude然后选择source files,在下方填入路径: C:Program FilesOpenCVcvsrcC:Program FilesOpenCVcxcoresrcC:Program FilesOpenCVcvauxsrcC:Program FilesOpenCVotherlibshighguiC:Program FilesOpenCVotherlibscvcamsrcwindows最后点击“ok”,完成设置。 在Visual C+ 6.0下创建使用OpenCV的VC Project正常启动Visual C+ 6.0,并创建project。项目设置每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project(工程)-Settings(设置),然后将Setting for(设置)选为All Configurations(所有配置),然后选择右边的link(连接)标签,在Object/library modules(对象/库模块)附加上 cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib如果你不需要这么多lib,你可以只添加你需要的lib。 创建以下win32 console application程序进行测试。#include #include #include int main(int argc, char *argv) IplImage *img = cvLoadImage(lena.jpg); cvNamedWindow(Image:, 1); cvShowImage(Image:, img); cvWaitKey(); cvDestroyWindow(Image:); cvReleaseImage(&img); return 0;如果能够编译链接成功,则说明配置成功,否则检查前面的配置步骤。开始创建工程1, 打开Visual C+ 6.0,创建一个“Win32 Console Application”类型的工程,工程名称取“test”,单击“确定”,然后单击“完成”,结束应用程序创建。2, 将OpenCVdatahaarcascades目录下的数据文件haarcascade_frontalface_alt.xml复制到工程目录文件夹中。其中,OpenCV为OpenCV的安装目录,数据文件haarcascade_frontalface_alt.xm为人脸检测时所用到得分类器。3, 源程序代码如下:/*test.cpp文件完整代码*/#include stdafx.h#include cv.h#include highgui.h#include static CvHaarClassifierCascade* cascade = 0;static CvMemStorage* storage = 0;void detect_and_draw( IplImage* image );const char* cascade_name =haarcascade_frontalface_alt.xml; /人脸检测要用到的分类器int _tmain(int argc, _TCHAR* argv) cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); /加载人脸检测所用的分类器 if( !cascade ) fprintf( stderr, ERROR: Could not load classifier cascaden ); return -1; storage = cvCreateMemStorage(0); /动态存储结构,用来存储人脸在图像中的位置 cvNamedWindow( result, 1 ); /const char* filename = lena.jpg; /待检测图像(包含绝对路径) const char* filename = 景甜.jpg; IplImage* image = cvLoadImage( filename, 1 ); /加载图像 detect_and_draw( image ); /对加载的图像进行检测 cvWaitKey(0); cvReleaseImage( &image ); cvDestroyWindow(result); return 0;void detect_and_draw( IplImage* img ) static CvScalar colors = 0,0,255, 0,128,255, 0,255,255, 0,255,0, 255,128,0, 255,255,0, 255,0,0, 255,0,255 ; double scale = 1.3; IplImage* gray = cvCreateImage( cvSize(img-width,img-height), 8, 1 ); IplImage* small_img = cvCreateImage( cvSize( cvRound (img-width/scale), cvRound (img-height/scale), 8, 1 ); cvCvtColor( img, gray, CV_BGR2GRAY ); cvResize( gray, small_img, CV_INTER_LINEAR ); cvEqualizeHist( small_img, small_img ); cvClearMemStorage( storage ); if( cascade ) /*函数cvHaarDetectObjects检测图像中的目标,由OpenCV提供。*/ CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 1.1, 2, 0 , cvSize(30, 30) ); for( int i = 0; i total : 0); i+ ) CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); CvPoint center; int radius; center.x = cvRound(r-x + r-width*0.5)*scale); center.y = cvRound(r-y + r-height*0.5)*scale); radius = cvRound(r-width + r-height)*0.25*scale); cvCircle( img, center, radius, colorsi%8, 3, 8, 0 ); cvShowImage( result, img ); cvReleaseImage( &gray ); cvReleaseImage( &small_img );/* stdafx.h文件完整代码*/ stdafx.h : 标准系统包含文件的包含文件,/ 或是经常使用但不常更改的/ 特定于项目的包含文件/#pragma once#define WIN32_LEAN_AND_MEAN/ 从 Windows 头中排除极少使用的资料#include #include / TODO: 在此处引用程序需要的其他头文件/* stdafx.cpp文件完整代码*/ stdafx.cpp : 只包括标准包含文件的源文件/ FaceDetection.pch 将作为预编译头/ stdafx.obj 将包含预编译类型信息#include stdafx.h/ TODO: 在 STDAFX.H 中/ 引用任何所需的附加头文件,而不是在此文件中引用4, 项目配置每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project-Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library

温馨提示

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

评论

0/150

提交评论