VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word下载.docx
- 文档编号:16758274
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:478.40KB
VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word下载.docx
《VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word下载.docx》由会员分享,可在线阅读,更多相关《VisualC++利用OpenCV对图像进行人脸识别傻瓜教程Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
选择高级选项,然后选择“环境变量”,查看是否加入,如果没有则将其加入
加入后,在任务管理器里重启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="
//待检测图像(包含绝对路径)
一切准备就绪,编译并连接工程,运行生成的文件。
效果如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualC 利用 OpenCV 图像 进行 识别 傻瓜 教程