资源简介

基于OpenCV读取摄像头的人脸检测和识别,人脸检测使用别人训练好的数据进行检测,程序可以选择特征脸、fisherface或LBP方法来实现人脸识别。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “cv.h“
#include “highgui.h“
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “detect_recog.h“
#include   
#include   
#include  
#include 
#include 
#include 
#include 
#include   
#include  

using namespace std;
using namespace cv;

//检测并圈出人脸,并将检测到的人脸进行判断属于训练图像中的哪一类
void recog_and_draw( IplImage* img ) 
{
    static CvScalar colors[] = 
    {
        {{00255}}
        {{0128255}}
        {{0255255}}
        {{02550}}
        {{2551280}}
        {{2552550}}
        {{25500}}
        {{2550255}}
    };
    IplImage *gray *small_img;
    int i j;
    gray = cvCreateImage( cvSize(img->widthimg->height) 8 1 );
    small_img = cvCreateImage( cvSize( cvRound (img->width/scale)
                         cvRound (img->height/scale)) 8 1 );
    cvCvtColor( img gray CV_BGR2GRAY ); // 彩色RGB图像转为灰度图像 
    cvResize( gray small_img CV_INTER_LINEAR );
    cvEqualizeHist( small_img small_img ); // 直方图均衡化 
    cvClearMemStorage( storage );
    if( cascade )
    {
        double t = (double)cvGetTickCount(); 
        CvSeq* faces = cvHaarDetectobjects( small_img cascade storage
                                            1.1 2 0
                                            //|CV_HAAR_FIND_BIGGEST_object
                                            //|CV_HAAR_DO_ROUGH_SEARCH
                                            |CV_HAAR_DO_CANNY_PRUNING
                                            //|CV_HAAR_SCALE_IMAGE
                                            
                                            cvSize(30 30) );
        t = (double)cvGetTickCount() - t; // 统计检测使用时间 
        //printf( “detection time = %gms\n“ t/((double)cvGetTickFrequency()*1000.) );
        for( i = 0; i < (faces ? faces->total : 0); i++ )
        {
            CvRect* r = (CvRect*)cvGetSeqElem( faces i ); // 将faces数据从CvSeq转为CvRect 
            CvMat small_img_roi;
            CvSeq* nested_objects;
            CvPoint center;
            CvScalar color = colors[i%8]; // 使用不同颜色绘制各个face,共八种色 
            int radius;
            center.x = cvRound((r->x + r->width*0.5)*scale); // 找出faces中心 
            center.y = cvRound((r->y + r->height*0.5)*scale);
            radius = cvRound((r->width + r->height)*0.25*scale); 

cvGetSubRect( small_img &small_img_roi *r );

//截取检测到的人脸区域作为识别的图像
IplImage *result;
CvRect roi;
roi = *r;
result = cvCreateImage( cvSize(r->width r->height) img->depth img->nChannels );
cvSetImageROI(imgroi);
// 创建子图像
cvCopy(imgresult);
cvResetImageROI(img);

IplImage *resizeRes;
CvSize dst_cvsize;
dst_cvsize.width=(int)(100);
dst_cvsize.height=(int)(100);
resizeRes=cvCreateImage(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        154  2013-11-30 15:11  faceRecgnition\data\facedetect.cmd

     文件       1677  2013-11-30 15:38  faceRecgnition\data\haarcascade_eye_tree_eyeglasses.xml

     文件     837462  2013-11-30 15:47  faceRecgnition\data\haarcascade_frontalface_alt.xml

     文件       6266  2013-12-21 15:01  faceRecgnition\Debug\cl.command.1.tlog

     文件     114254  2013-12-21 15:01  faceRecgnition\Debug\CL.read.1.tlog

     文件       4452  2013-12-21 15:01  faceRecgnition\Debug\CL.write.1.tlog

     文件     457662  2013-12-21 15:01  faceRecgnition\Debug\detect_recog.obj

     文件       1655  2013-11-30 19:43  faceRecgnition\Debug\facerec1.obj

     文件     146432  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.exe

     文件          2  2013-11-29 20:56  faceRecgnition\Debug\faceRecgnition.exe.embed.manifest

     文件         68  2013-11-29 20:56  faceRecgnition\Debug\faceRecgnition.exe.embed.manifest.res

     文件        381  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.exe.intermediate.manifest

     文件        406  2013-11-30 14:39  faceRecgnition\Debug\faceRecgnition.exe.manifest

     文件    1425628  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.ilk

     文件         52  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.lastbuildstate

     文件       2946  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.log

     文件     260538  2013-12-21 15:00  faceRecgnition\Debug\faceRecgnition.obj

     文件    1179648  2013-12-21 13:46  faceRecgnition\Debug\faceRecgnition.pch

     文件    2255872  2013-12-21 15:01  faceRecgnition\Debug\faceRecgnition.pdb

     文件        707  2013-11-29 20:56  faceRecgnition\Debug\faceRecgnition.vcxprojResolveAssemblyReference.cache

     文件          0  2013-11-29 20:56  faceRecgnition\Debug\faceRecgnition.write.1.tlog

     文件        218  2013-11-29 20:56  faceRecgnition\Debug\faceRecgnition_manifest.rc

     文件       1615  2013-12-21 13:46  faceRecgnition\Debug\fisherrec.obj

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.10680.read.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.10680.write.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.11440.read.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.11440.write.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.11772.read.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.11772.write.1.tlog

     文件          2  2013-12-21 15:01  faceRecgnition\Debug\link.13320.read.1.tlog

............此处省略73个文件信息

评论

共有 条评论