这两天试了下OPENCV的人脸识别库,按照别人的代码重新做了一遍。遇到了下小问题,好在最后都调试成功了。下面做下汇总。
基本思路分为以下几步:1)加载并检测人脸;2)保存检测到的面部数据入库;3)采用面部数据库“训练”程序;4)进行人脸识别。
根据以上思路,以下是参考博客“基于OPENCV的人脸检测及识别”(https://www.cnblogs.com/yyagrt/p/7260586.html)中的部分代码进行修改,完成的识别人脸并保存的代码。编译环境为VS2015,集成OPENCV2.4.13。其中增加了眼睛的识别代码,可以去掉。
#include "stdafx.h"
#include <iostream>
#include <string>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/gpu/gpu.hpp>
using namespace cv;
using namespace std;
string face_cascade = "C:\\opencv\\works\\face_reco\\haarcascades\\haarcascade_frontalface_default.xml";//这里一定要预先将opencv安装目录下,opencv\sources\data\haarcascades中的所有xml文件拷贝到定义目录中
string eye_cascade = "C:\\opencv\\works\\face_reco\\haarcascades\\haarcascade_eye.xml";
//face_cascade 字符串记录那个.xml文件的路径
int main(int argc, char**argv)
{
Mat frame, gray, roi, image1;
CascadeClassifier ccf, cce; //创建脸部对象
ccf.load(face_cascade); //导入opencv自带检测的文件
CascadeClassifier a; //创建脸部对象
cce.load(eye_cascade);
CascadeClassifier b;
if (!a.load(face_cascade)) //如果读取文件不出错,则检测人脸
{
cout << "无法加载xml文件" << endl;
return 0;
}
if (!b.load(eye_cascade)) //如果读取文件不出错,则检测眼睛
{

本文记录了使用OpenCV进行人脸检测与识别的过程,包括加载检测人脸、保存面部数据、训练程序和实际识别。通过修改参考博客的代码,在VS2015和OpenCV2.4.13环境下实现,同时增加了眼睛识别功能。识别所需面部数据可自建或从官方数据库获取,并确保尺寸一致。训练和检测代码随后介绍。由于显示中文字符库编译繁琐,故未实现。
&spm=1001.2101.3001.5002&articleId=79720344&d=1&t=3&u=626e8323e1944623bf93b15c21a4b4d0)
1万+

被折叠的 条评论
为什么被折叠?



