Visual C++利用OpenCV对图像进行人脸识别(傻瓜教程)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用OpenCV检测图像中的人脸
工程创建准备:
1.安装Visual C++ 6.0或以上版本,本机安装Visual C++ 6.0
2.安装OpenCV及配置
OpenCV 1.0在VC6下安装与配置
参考网站: 安装OpenCV
下载OpenCV安装程序。假如要将OpenCV安装到C:\Program Files\OpenCV。在安装时选择"将\OpenCV\bin加入系统变量"(Add\OpenCV\bin to the systerm PATH)。
配置Windows环境变量
检查C:\Program Files\OpenCV\bin是否已经被加入到环境变量PATH,如果没有,请加入。
选择高级选项,然后选择“环境变量”,查看是否加入,如果没有则将其加入
加入后,在任务管理器里重启explorer.exe
配置Visual C++ 6.0
全局设置
菜单Tools(工具)->Options(选择)->Directories(目录):先设置lib路径,选择Library files,在下方填入路径:
C:\Program Files\OpenCV\lib
然后选择include files,在下方填入路径:
C:\Program Files\OpenCV\cxcore\include
C:\Program Files\OpenCV\cv\include
C:\Program Files\OpenCV\cvaux\include
C:\Program Files\OpenCV\ml\include
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\otherlibs\cvcam\include
然后选择source files,在下方填入路径:
C:\Program Files\OpenCV\cv\src
C:\Program Files\OpenCV\cxcore\src
C:\Program Files\OpenCV\cvaux\src
C:\Program Files\OpenCV\otherlibs\highgui
C:\Program Files\OpenCV\otherlibs\cvcam\src\windows
最后点击“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,将…\OpenCV\data\haarcascades目录下的数据文件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[])