VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx

上传人:b****1 文档编号:1221596 上传时间:2023-04-30 格式:DOCX 页数:14 大小:478.36KB
下载 相关 举报
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第1页
第1页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第2页
第2页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第3页
第3页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第4页
第4页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第5页
第5页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第6页
第6页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第7页
第7页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第8页
第8页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第9页
第9页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第10页
第10页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第11页
第11页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第12页
第12页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第13页
第13页 / 共14页
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx

《VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx》由会员分享,可在线阅读,更多相关《VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx(14页珍藏版)》请在冰点文库上搜索。

VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word格式.docx

选择高级选项,然后选择“环境变量”,查看是否加入,如果没有则将其加入

加入后,在任务管理器里重启explorer.exe

配置VisualC++6.0

全局设置

菜单Tools(工具)->

Options(选择)->

Directories(目录):

先设置lib路径,选择Libraryfiles,在下方填入路径:

C:

\ProgramFiles\OpenCV\lib

然后选择includefiles,在下方填入路径:

\ProgramFiles\OpenCV\cxcore\include

\ProgramFiles\OpenCV\cv\include

\ProgramFiles\OpenCV\cvaux\include

\ProgramFiles\OpenCV\ml\include

\ProgramFiles\OpenCV\otherlibs\highgui

\ProgramFiles\OpenCV\otherlibs\cvcam\include

然后选择sourcefiles,在下方填入路径:

\ProgramFiles\OpenCV\cv\src

\ProgramFiles\OpenCV\cxcore\src

\ProgramFiles\OpenCV\cvaux\src

\ProgramFiles\OpenCV\otherlibs\cvcam\src\windows

最后点击“ok”,完成设置。

在VisualC++6.0下创建使用OpenCV的VCProject

正常启动VisualC++6.0,并创建project。

项目设置

每创建一个将要使用OpenCV的VCProject,都需要给它指定需要的lib。

菜单:

Project(工程)->

Settings(设置),然后将Settingfor(设置)选为AllConfigurations(所有配置),然后选择右边的link(连接)标签,在Object/librarymodules(对象/库模块)附加上

cxcore.libcv.libml.libcvaux.libhighgui.libcvcam.lib

如果你不需要这么多lib,你可以只添加你需要的lib。

创建以下win32consoleapplication程序进行测试。

#include<

cv.h>

cxcore.h>

highgui.h>

intmain(intargc,char*argv[])

{

IplImage*img=cvLoadImage("

lena.jpg"

);

cvNamedWindow("

Image:

"

1);

cvShowImage("

img);

cvWaitKey();

cvDestroyWindow("

cvReleaseImage(&

img);

return0;

}

如果能够编译链接成功,则说明配置成功,否则检查前面的配置步骤。

开始创建工程

1,打开VisualC++6.0,创建一个“Win32ConsoleApplication”类型的工程,工程名称取“test”,单击“确定”,然后单击“完成”,结束应用程序创建。

2,将…\OpenCV\data\haarcascades目录下的数据文件haarcascade_frontalface_alt.xml复制到工程目录文件夹中。

其中,…\OpenCV为OpenCV的安装目录,数据文件haarcascade_frontalface_alt.xm为人脸检测时所用到得分类器。

3,源程序代码如下:

/*test.cpp文件完整代码*/

#include"

stdafx.h"

cv.h"

highgui.h"

stdio.h>

staticCvHaarClassifierCascade*cascade=0;

staticCvMemStorage*storage=0;

voiddetect_and_draw(IplImage*image);

constchar*cascade_name="

haarcascade_frontalface_alt.xml"

;

//人脸检测要用到的分类器

int_tmain(intargc,_TCHAR*argv[])

cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);

//加载人脸检测所用的分类器

if(!

cascade)

{

fprintf(stderr,"

ERROR:

Couldnotloadclassifiercascade\n"

);

return-1;

}

storage=cvCreateMemStorage(0);

//动态存储结构,用来存储人脸在图像中的位置

cvNamedWindow("

result"

1);

//constchar*filename="

//待检测图像(包含绝对路径)

constchar*filename="

景甜.jpg"

IplImage*image=cvLoadImage(filename,1);

//加载图像

detect_and_draw(image);

//对加载的图像进行检测

cvWaitKey(0);

cvReleaseImage(&

image);

voiddetect_and_draw(IplImage*img)

staticCvScalarcolors[]=

{{0,0,255}},

{{0,128,255}},

{{0,255,255}},

{{0,255,0}},

{{255,128,0}},

{{255,255,0}},

{{255,0,0}},

{{255,0,255}}

};

doublescale=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(inti=0;

i<

(faces?

faces->

total:

0);

i++)

CvRect*r=(CvRect*)cvGetSeqElem(faces,i);

CvPointcenter;

intradius;

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,colors[i%8],3,8,0);

cvShowImage("

img);

gray);

small_img);

/*stdafx.h文件完整代码*/

//stdafx.h:

标准系统包含文件的包含文件,

//或是经常使用但不常更改的

//特定于项目的包含文件

//

#pragmaonce

#defineWIN32_LEAN_AND_MEAN//从Windows头中排除极少使用的资料

tchar.h>

//TODO:

在此处引用程序需要的其他头文件

/*stdafx.cpp文件完整代码*/

//stdafx.cpp:

只包括标准包含文件的源文件

//FaceDetection.pch将作为预编译头

//stdafx.obj将包含预编译类型信息

在STDAFX.H中

//引用任何所需的附加头文件,而不是在此文件中引用

4,项目配置

Project->

Settings,然后将Settingfor选为AllConfigurations,然后选择右边的link标签,在Object/librarymodules附加上

5,编译工程

在编译前,将要进行人脸检测的图片放到工程目录下,图片的名称要与代码中的名称对应。

如:

constchar*filename="

//待检测图像(包含绝对路径)

一切准备就绪,编译并连接工程,运行生成的文件。

效果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2