资源简介
人脸识别主要有三个步骤:
人脸图像采集及检测
人脸图像预处理
人脸图像特征提取以及匹配与识别
以下代码实现了读取本地图像,进行人脸检测
代码片段和文件信息
#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;
}
相关资源
- C++/OpenCV2.4.xx印刷数字精确识别源码
- 用C++模拟集中式密钥分配的过程
- KinectV2 实现鼠标控制VS2013 C++版
- 基于MFC编程的冒泡排序动态演示
- 基于MFC的画直线,矩形,椭圆改变线
- 操作系统进程调度先来先服务、短进
- 精通Visual C++图像处理编程(第二版)
- 解析IP数据包 小程序C++实现
- Carve CSG 几何造型库
- C++ 连连看146451
- 数据结构用面向对象方法和C++描述 殷
- 基于C++的三维模型体素化程序
- wincap c++ mfc 网络截包 多线程
- KCF跟踪算法(C++)146187
- opencvsharp-20个
- C++程序设计(谭浩强)146060
- c++图像处理编程
- Effective C++
- Visual C++程序设计与应用教程第二版案
- C++程序设计实践指导
- C++操作SQL Server数据库新增 删除 修改
- C++编写电压电流表仪表盘
- effective c++中文版第三版pdf
- C++ QT5教程 开发大全和教程 完整
- 基于MFC的飞秋实现
- vc++直接控制excel程序打开
- 基于信息熵的属性约简算法c/c++代码
- c++钩子技术实现文件监控
- C++命名管道详解及简单案例基于VS20
- C++匿名管道详解及简单案例基于VS20
评论
共有 条评论