资源简介

人脸识别主要有三个步骤: 人脸图像采集及检测 人脸图像预处理 人脸图像特征提取以及匹配与识别 以下代码实现了读取本地图像,进行人脸检测

资源截图

代码片段和文件信息

#include 
#include “stdafx.h“
#include 
#include 



using namespace std;
using namespace cv;

int main()
{
Mat image image_gray;       //定义两个Mat变量,用于存储每一帧的图像

image = imread(“../test.jpg“);
imshow(“原图“ image);

//waitKey(0);

cvtColor(image image_gray CV_BGR2GRAY);   //转为灰度图
equalizeHist(image_gray image_gray);       //直发图均化,增强对比度方便处理

CascadeClassifier eye_Classifier;            //载入分类器
CascadeClassifier face_cascade;              //载入分类器


//加载分类训练器,OpenCV官方文档的xml文档,可以直接调用
//我的xml的路径D:\OpenCV\opencv\build\etc\haarcascades  

if (!eye_Classifier.load(“./haarcascade_eye.xml“))    //把xml文档复制到了当前项目的路径下
{
cout << “导入haarcascade_eye.xml时出错 !“ << endl;
return 0;

}

if (!face_cascade.load(“./haarcascade_frontalface_alt.xml“))    //把xml文档复制到了当前项目的路径下
{
cout << “导入haarcascade_frontalface_alt.xml时出错 !“ << endl;
return 0;

}


//vector 是个类模板 需要提供明确的模板实参  vector则是个确定的类 模板的实例化

vector eyeRect;
vector faceRect;


//检测眼睛的位置
eye_Classifier.detectMultiScale(image_grayeyeRect1.120 | CV_HAAR_SCALE_IMAGESize(3030));
for (size_t eyeIdx = 0;eyeIdx < eyeRect.size();eyeIdx++) 
{

rectangle(image eyeRect[eyeIdx] Scalar(0 0 255));    //用矩形画出检测到的眼睛的位置

}
/*
CV_WRAP virtual void detectMultiScale(
   const Mat& image  
                                   CV_OUT vector& objects  
                                   double scaleFactor=1.1  
                                   int minNeighbors=3 int flags=0  
                                   Size minSize=Size()  
                                   Size maxSize=Size() 
   );  


各参数含义:
const Mat& image: 需要被检测的图像(灰度图)
vector& objects: 保存被检测出的人脸位置坐标序列
double scaleFactor: 每次图片缩放的比例
int minNeighbors: 每一个人脸至少要检测到多少次才算是真的人脸
int flags: 决定是缩放分类器来检测,还是缩放图像
Size(): 表示人脸的最大最小尺寸

*/

//检测关于脸部的位置

face_cascade.detectMultiScale(image_gray faceRect 1.1 2 0 | CV_HAAR_SCALE_IMAGE Size(30 30));
for (size_t i = 0; i < faceRect.size(); i++)
{
rectangle(image faceRect[i] Scalar(0 0 255));           //用矩形画出检测到脸部的位置
}

imshow(“人脸识别“image);         //显示当前
waitKey(0);


return 0;


}

评论

共有 条评论