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

下载本文档

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

文档简介

1、利用 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,假如没有

2、,请加入。选择高级选项,然后选择“环境变量”,查看是否加入,假如没有则将其加入加入后,在任务治理器里重启 explorer.exe配置 visual c+ 6.0全局设置菜单 tools(工具)->options(选择)->directories(名目):先设置 lib 路径, 选择 library files,在下方填入路径:c:program filesopencvlib然后选择 include files,在下方填入路径:c:program filesopencvcxcoreinclude c:program filesopencvcvinclude c:program fi

3、lesopencvcvauxinclude c:program filesopencvmlinclude c:program filesopencvotherlibshighguic:program filesopencvotherlibscvcaminclude然后选择 source files,在下方填入路径:c:program filesopencvcvsrc c:program filesopencvcxcoresrc c:program filesopencvcvauxsrcc:program filesopencvotherlibshighgui c:program filesop

4、encvotherlibscvcamsrcwindows最终点击“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(对象/库模块)附加上cxcor

5、e.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib假如你不需要这么多 lib,你可以只添加你需要的 lib。创建以下 win32 console application 程序进行测试。#include <cv.h> #include <cxcore.h> #include <highgui.h>int main(int argc, char *argv)iplimage *img = cvloadimage(“lena.jpg“); cvnamedwindow(“image:“, 1); cvshowima

6、ge(“image:“, img);cvwaitkey();cvdestroywindow(“image:“); cvreleaseimage(&img); return 0;假如能够编译链接成功,则说明配置成功,否则检查前面的配置步骤。开头创建工程1, 打开 visual c+ 6.0,创建一个“win32 console application”类型的工程,工程名称取“test”,单击“确定”,然后单击“完成”,结束应用程序创建。2, 将opencvdatahaarcascades 名目下的数据文件 haarcascade_frontalface_alt.xml 复制到工程名目文件

7、夹中。 其中, opencv 为 opencv 的安装名目, 数据文件haarcascade_frontalface_alt.xm 为人脸检测时所用到得分类器。3, 源程序代码如下:/*test.cpp 文件完整代码*/ #include “stdafx.h“ #include “cv.h“#include “highgui.h“ #include <stdio.h>static cvhaarclassifiercascade* cascade = 0; static cvmemstorage* storage = 0;void detect_and_draw( iplimage*

8、 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 = cvcrea

9、tememstorage(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

10、 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

11、(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 = cvhaardete

12、ctobjects( small_img, cascade, storage, 1.1, 2, 0 ,cvsize(30, 30) ); for( int i = 0; i < (faces ? faces->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)

13、*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#def

14、ine win32_lean_and_mean #include <stdio.h>#include <tchar.h>/ 从 windows 头中排解极少使用的资料/ todo: 在此处引用程序需要的其他头文件/* stdafx.cpp 文件完整代码*/ stdafx.cpp : 只包括标准包含文件的源文件/ facedetection.pch 将作为预编译头/ stdafx.obj 将包含预编译类型信息#include “stdafx.h“/ todo: 在 stdafx.h 中/ 引用任何所需的附加头文件,而不是在此文件中引用每创建一个将要使用 opencv 的 vc project,都需要给它指定需要的 lib。菜单:project->settings ,然后将 setting for 选为 all configurations ,然后选择右边的 link 标签,在 object/librar

温馨提示

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

评论

0/150

提交评论