OpenCV检测人脸实例代码

下面是使用OpenCV通过在硬盘中读入图像来对其进行Haar人脸检测的代码。 
//包含头文件 
#include <opencv2/core/core.hpp> 
#include "cv.h" 
#include "highgui.h"

int main() 

    const char* cascade_name = "C:\\opencv249\\sources\\data\\haarcascades\\haarcascade_frontalface_alt2.xml";//分类器路径,按实际填写

static CvMemStorage* storage = 0; 
    static CvHaarClassifierCascade* cascade = 0;

cascade = (CvHaarClassifierCascade*)cvLoad(cascade_name, 0, 0, 0); 
    storage = cvCreateMemStorage(0);

IplImage *image = cvLoadImage("E:\\1.jpg");//读入图像,按实际输入

CvSeq* faces = cvHaarDetectObjects(image, cascade, storage, 1.1, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(30, 30));//Haar人脸检测

int num_of_face = faces->total;//得到检测所得的人脸个数

CvScalar color[1] = { 255, 0, 0 };//设置矩形框颜色

for (int i = 1; i < num_of_face + 1; i++) 
    { 
        CvRect* r = (CvRect*)cvGetSeqElem(faces, i); //获取每个人脸的信息,返回类型是矩形。i为人脸编号,0,1,2。。。可以用循环读取。 
        cvRectangle(image, cvPoint(r->x, r->y), cvPoint(r->x + r->width, r->y + r->height), color[0], 3);//画矩形框 
    }

cvNamedWindow("Test", CV_WINDOW_AUTOSIZE);//创建窗口,第二个参数CV_WINDOW_AUTOSIZE代表保存图像原来大小  
    cvShowImage("Test", image);//显示图片

cvWaitKey(0);//等待操作

cvReleaseImage(&image);//释放图片    
    cvDestroyWindow("Test");//销毁窗口

return 0; 

基于opencv的人脸检测并保存图片发送:http://www.eyesourcecode.com/thread-41275-1-1.html 
OpenCV源码:http://www.eyesourcecode.com/forum-OpenCV-1.html

时间: 2024-08-05 07:09:30

OpenCV检测人脸实例代码的相关文章

玩转Android Camera开发(五):基于Google自带算法实时检测人脸并绘制人脸框(网络首发,附完整demo)

本文主要介绍使用Google自带的FaceDetectionListener进行人脸检测,并将检测到的人脸用矩形框绘制出来.本文代码基于PlayCameraV1.0.0,在Camera的open和preview流程上进行了改动.原先是放在单独线程里,这次我又把它放到Surfaceview的生命周期里进行打开和开预览. 首先要反省下,去年就推出了静态图片的人脸检测demo,当时许诺一周内推出Camera预览实时检测并绘制的demo,结果拖到现在才整.哎,屌丝一天又一天,蹉跎啊.在demo制作过程中

OpenCV人脸检测(C++代码)

OpenCV人脸检测(C++代码)-- By wepon 这篇文章简单总结一下人脸检测的代码实现,基于OpenCV,C++版本.之所以强调C++版本是因为OpenCV有很多其他语言的接口,之前我也写过人脸检测的Python实现<Python-OpenCV人脸检测(代码)>,这篇文章则讲C++实现,其实大同小异,C++相比于Python实现代码写起来会繁琐一点,这也是语言本身决定的吧. 为了保持代码风格一致,C++实现与之前的Python实现一样,都将人脸检测.眼睛检测.框出人脸.框出眼睛.截取

基于Opencv的人脸检测及识别

一.实验目的:我这里完成的是,将8张人脸图片(4组,每组两张)存入库中,选取1张图片,程序识别出与其匹配的另一张. 这里介绍分三个步骤完成该工作,①程序读取摄像头.拍照 ②程序从电脑文档中读取图片   ③检测人脸,并用红框框出人脸 ④使用感知哈希算法匹配最相似的图片 二.实验环境: Win 7(x64).visual studio 2010.openCV-2.4.3 使用语言:C++ 三.实验准备:①安装好vs2010,本文不予介绍.   ②配置opencv : 1'进入官网下载http://o

OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码

Tadas Baltrusaitis的OpenFace是一个开源的面部行为分析工具,它的源码可以从 https://github.com/TadasBaltrusaitis/OpenFace 下载.OpenFace主要包括面部关键点检测(facial landmard detection).头部姿势估计(head pose estimation).面部动作单元识别(facial action unit recognition).人眼视线方向估计(eye gaze estimation). 编译T

C++开发人脸性别识别教程(4)——OpenCv的人脸检测函数

这个项目主要包含三部分:人脸检测.特征提取.性别分类: 这篇博客中我们重点介绍OpenCv的人脸检测函数.这篇博客我们先不提MFC,而是在win32控制台下编写一段人脸检测的程序. 一.开启摄像头 我们先讲解如何通过摄像头来采集图像,这听起来更有实际意义. 1.新建工程并配置OpenCv(注意工程类型选择win32控制台应用程序): 2.包含头文件 OpenCv2.x版本包含头文件非常方便,一句话搞定: #include <opencv2\opencv.hpp> using namespace

基于openCV实现人脸检测

openCV的人脸识别主要通过Haar分类器实现,当然,这是在已有训练数据的基础上.openCV安装在 opencv/opencv/sources/data/haarcascades_cuda(或haarcascades)中存在预先训练好的物体检测器(xml格式),包括正脸.侧脸.眼睛.微笑.上半身.下半身.全身等. openCV的的Haar分类器是一个监督分类器,首先对图像进行直方图均衡化并归一化到同样大小,然后标记里面是否包含要监测的物体.它首先由Paul Viola和Michael Jon

基于QT和OpenCV的人脸检测识别系统(1)

人脸识别分为两大步骤 1.人脸检测 这个是首要实现的,你得实现人脸显示的时候把人脸框出来,当然算法很多,还有一些人眼检测鼻子检测什么的 主要用的是这个 const char *faceCascadeFilename = "haarcascade_frontalface_alt.xml"; detect_and_draw(IplImageBuffer,storage,cascade); 这个函数就是检测人脸的并画框效果如下 主要代码如下 void Chenaini::detect_and

让opencv输出人脸检测的得分(置信率)

最近项目略多,其中一个需要找出一些和脸比较像但是不是脸的负样本,想用opencv的人脸检测器检测到的错误脸作为这样的负样本. 但是国内(包括国外)居然几乎没有相关的资料如何输出detectMultiScale()的置信率或者说是人脸得分 所以写一篇小小的总结供有相关需求的人参考. 转载需注明:http://www.cnblogs.com/sciencefans/ 看了下人脸识别函数的opencv的源码 \sources\modules\objdetect\src\cascadedetect.cp

基于opencv的人脸检测的web应用

参考资料 https://github.com/bsdnoobz/web-based-face-detect http://opencv-code.com/projects/web-based-interface-for-face-detection-with-opencv/ http://www.cnblogs.com/findingsea/archive/2012/03/31/2427833.html 流程如下图 背景知识 php调用exe的返回 <html> <body> &