视频流中的人脸跟踪以及眼睛定位


用OPENCV写的,非常好用,需要在VC的支持下运行,
资源截图
代码片段和文件信息
#include “stdafx.h“
#include “cvapp.h“
#include 

#define MERGESIZE 5


//global variable

static CvMemStorage* storage = 0;
static CvMemStorage* storage_eye = 0;
static CvHaarClassifierCascade* cascade = 0;
static CvHaarClassifierCascade* cascade_eye= 0;
const char* cascade_name =“E:/CVspace/OpenCV/data/haarcascades/haarcascade_frontalface_alt.xml“;



ImageProcessor *proc=0;



void detect_and_draw( IplImage* img )
{
    int scale = 1;
    IplImage* temp = cvCreateImage( cvSize(img->widthimg->height) 8 3 );
    CvPoint pt1 pt2pt1eyept2eyecyclecentereyecenter_pt1eyecenter_pt2eyecenter_pt3eyecenter_pt4;
    int ijcycleradius;
CvRect regFace;
IplImage* faceimg* tempfaceimg;
double sizeratio=1;

temp = cvCloneImage(img);
//cvPyrDown( img temp CV_GAUSSIAN_5x5 );
    cvClearMemStorage( storage );
cvClearMemStorage( storage_eye );

    if( cascade )
    {
        
CvSeq* faces = cvHaarDetectobjects( img cascade storage
                                            1.1 2 CV_HAAR_DO_CANNY_PRUNING
                                            cvSize(40 40) );



for( i = 0; i < (faces ? faces->total : 0); i++ )
        {
CvRect* r = (CvRect*)cvGetSeqElem( faces i );
            pt1.x = r->x*scale;
            pt2.x = (r->x+r->width)*scale;
            pt1.y = r->y*scale;
            pt2.y = (r->y+r->height)*scale;
            //cvRectangle( img pt1 pt2 CV_RGB(25500) 3 8 0 );
cyclecenter.x=(pt1.x+pt2.x)/2;
cyclecenter.y=(pt1.y+pt2.y)/2;
cycleradius=scale*max(r->widthr->height)/2;

//cvCircle(img cyclecenter cycleradius CV_RGB(25500) 3 8 0);
//cvEllipse( img cyclecenter cvSize(cycleradius1.4*cycleradius)00 360 CV_RGB(25500) 2);



regFace.x = r->x*scale;
regFace.y = r->y*scale;
regFace.width  =r->width*scale;
regFace.height =(int)r->height*scale/2;



if (regFace.width>200)
{
faceimg=cvCreateImage( cvSize(regFace.width/scaleregFace.height/scale) 8 img->nChannels);
cvSetImageROI (temp regFace);
//cvResize(img faceimg CV_INTER_LINEAR);
cvCopy (temp tempfaceimg);
sizeratio=1.0;
}
else
{
tempfaceimg=cvCreateImage( cvSize(regFace.width/scaleregFace.height/scale) 8 img->nChannels);
cvSetImageROI (temp regFace);
cvCopy (temp tempfaceimg);
//cvSaveImage(“temp1.jpg“tempfaceimg);
faceimg=cvCreateImage( cvSize(200regFace.height*200/regFace.width) 8 img->nChannels);
cvResize(tempfaceimgfaceimg);
//cvSaveImage(“temp2.jpg“faceimg);
sizeratio=(double)regFace.width/200;
}

//cvSaveImage(“temp.jpg“img);
//cvSaveImage(“temp.jpg“faceimg);


        CvSeq* eyes = cvHaarDetectobjects( faceimg cascade_eye storage_eye
                                            1.1 2 CV_HAAR_DO_CANNY_PRUNING
                                            cvSize(30 20) );

for( j = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       49205  2005-04-26 01:19  FindEyes1.1925174346.jpg
     文件       30567  2005-04-26 02:05  FindEyes1.18358210705999159.jpg
     文件      110902  2005-01-24 18:17  FindEyes1.1BioID_0249.bmp
     目录           0  2005-11-29 12:10  FindEyes1.1cascade
     目录           0  2005-11-29 12:10  FindEyes1.1cascade
     文件         223  2005-04-09 15:56  FindEyes1.1cascadeAdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade1
     目录           0  2005-11-29 12:10  FindEyes1.1cascade10
     文件        1287  2005-04-09 18:13  FindEyes1.1cascade10AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade11
     文件        1362  2005-04-09 19:09  FindEyes1.1cascade11AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade12
     文件         950  2005-04-09 21:03  FindEyes1.1cascade12AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade13
     文件        1282  2005-04-10 00:49  FindEyes1.1cascade13AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade14
     文件         919  2005-04-10 10:08  FindEyes1.1cascade14AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade15
     文件         883  2005-04-11 06:45  FindEyes1.1cascade15AdaBoostCARTHaarClassifier.txt
     文件         327  2005-04-09 16:01  FindEyes1.1cascade1AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade2
     文件         340  2005-04-09 16:07  FindEyes1.1cascade2AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade3
     文件         324  2005-04-09 16:12  FindEyes1.1cascade3AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade4
     文件         523  2005-04-09 16:19  FindEyes1.1cascade4AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade5
     文件         748  2005-04-09 16:30  FindEyes1.1cascade5AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade6
     文件        1132  2005-04-09 16:45  FindEyes1.1cascade6AdaBoostCARTHaarClassifier.txt
     目录           0  2005-11-29 12:10  FindEyes1.1cascade7
............此处省略83个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)