• 大小: 3.63MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-30
  • 语言: C/C++
  • 标签:

资源简介

在VC6.0环境下,借助openCV函数库,对视频中的人脸进行检测,并实时跟踪,然后用Haar特征的分类器定位人脸,并检测瞳孔存在与否,提取关于眼睛的疲劳信息

资源截图

代码片段和文件信息

#include“nod.h“
#include“face_detec.h“
#include“eye_detec.h“
#include“face_genzong.h“
#include“seqList.h“
#include “mmsystem.h“//导入声音头文件
#pragma comment(lib“winmm.lib“)//导入声音头文件库

#include“subImage.h“
#include“pupilDetc.h“


#include 
#include 
#include 
#include 
#include 
#include 


//检测用到的各种级联分类器
const char* cascade_fname =
“haarcascade_frontalface_alt2.xml“;
const char* cascade_mname =
“Boca.xml“;
const char* cascade_elname =
“haarcascade_lefteye_2splits.xml“;
const char* cascade_ername =
“haarcascade_righteye_2splits.xml“;



int main( int argc char** argv )
{

CvCapture* capture=0;//视频初始化
IplImage* frame*frame_copy=0;
const char* input_name;//输入的视频文件的处理

input_name=argc>1?argv[1]:0;
if( !input_name || (isdigit(input_name[0]) && input_name[1] == ‘\0‘) )
        capture = cvCaptureFromCAM( !input_name ? 0 : input_name[0] - ‘0‘ );
    else
        capture = cvCaptureFromAVI( input_name ); 
//人脸分类器的加载
cascade_face = (CvHaarClassifierCascade*)cvLoad( cascade_fname 0 0 0 );
//左眼分类器加载
cascade_el = (CvHaarClassifierCascade*)cvLoad( cascade_elname 0 0 0 );

    if( !cascade_face )
    {
        fprintf( stderr “ERROR: Could not load classifier face\n“ );
        fprintf( stderr
“Usage: facedetect --cascade=\“\“ [filename|camera_index]\n“ );
        return -1;
    }
if( !cascade_el )
    {
        fprintf( stderr “ERROR: Could not load classifier eyeleft\n“ );
        fprintf( stderr
“Usage: facedetect --cascade=\“\“ [filename|camera_index]\n“ );
        return -1;
    }
storage = cvCreateMemStorage(0);//人脸检测用的内存快
storage_el = cvCreateMemStorage(0);//眼睛检测用的内存快
cvNamedWindow( “Histogram“CV_WINDOW_AUTOSIZE );
    cvNamedWindow( “FaceTrack“CV_WINDOW_AUTOSIZE );
cvNamedWindow(“EyeOrient“CV_WINDOW_AUTOSIZE);
cvNamedWindow(“Eye“CV_WINDOW_AUTOSIZE);
cvNamedWindow(“Pupil“CV_WINDOW_AUTOSIZE);


    cvCreateTrackbar( “Vmin“ “FaceTrack“ &vmin 256 0 );
    cvCreateTrackbar( “Vmax“ “FaceTrack“ &vmax 256 0 );
    cvCreateTrackbar( “Smin“ “FaceTrack“ &smin 256 0 );

//提取点头疲劳信息的结构
SeqList nodSeq(15);//记录头部位置的顺序表
int numOfframe=0;//帧数记录器
int avgHeightOfHead=0;//头部位置的平均距离
int numOfFatigue=0;//疲劳帧数的记录器
int threshNod=10;//nod 阈值,初步设定为10
//提取点头疲劳信息的结构



//提取眼睛疲劳信息的结构
int numOfFatigueEye=0;
IplImage* img4Eye=0*eyeimg;
float pupilThreth=109;//瞳孔检测二值化的阈值

//提取眼睛疲劳信息的结构

if(!capture)
{
return -1;
}
//检测人脸,为下一步的跟踪提供图像源//
if(!cvGrabframe(capture))
return -1;
frame=cvRetrieveframe(capture);
if(!frame)
return -1;
 
if(selection.width==0||selection.height==0||selection.height/selection.width>2||selection.height/selection.width<1)
{


if(!frame_copy)
frame_copy = cvCreateImage( cvSize(frame->widthframe->height)
IPL_DEPTH_8U frame->nChannels );

if( frame->origin == IPL_ORIGIN

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-07-24 20:31  pilao_diantou\
     文件        1557  2011-07-22 10:36  pilao_diantou\aaa.jpg
     文件      209452  2009-06-07 01:47  pilao_diantou\ALARM.WAV
     文件         141  2011-07-22 16:54  pilao_diantou\blackpixcount.h
     文件      994519  2006-11-13 10:17  pilao_diantou\Boca.xml
     目录           0  2011-07-24 20:30  pilao_diantou\Debug\
     文件      217157  2011-07-24 20:30  pilao_diantou\Debug\pilao_diantou.exe
     文件      447116  2011-07-24 20:30  pilao_diantou\Debug\pilao_diantou.ilk
     文件       62241  2011-07-24 20:30  pilao_diantou\Debug\pilao_diantou.obj
     文件     4288476  2011-07-24 20:30  pilao_diantou\Debug\pilao_diantou.pch
     文件      631808  2011-07-24 20:30  pilao_diantou\Debug\pilao_diantou.pdb
     文件      189440  2011-07-24 20:30  pilao_diantou\Debug\vc60.idb
     文件      110592  2011-07-24 20:30  pilao_diantou\Debug\vc60.pdb
     文件        2249  2011-07-24 19:54  pilao_diantou\eye_detec.h
     文件        2047  2011-07-24 19:08  pilao_diantou\face_detec.h
     文件        1239  2011-07-21 20:33  pilao_diantou\face_genzong.h
     文件      837462  2005-03-16 23:18  pilao_diantou\haarcascade_frontalface_alt2.xml
     文件      323227  2011-07-08 10:57  pilao_diantou\haarcascade_lefteye_2splits.xml
     文件      324586  2011-07-08 10:57  pilao_diantou\haarcascade_righteye_2splits.xml
     文件         100  2011-07-24 19:23  pilao_diantou\nod.h
     文件       10030  2011-07-24 19:59  pilao_diantou\pilao_diantou.cpp
     文件        4948  2011-07-24 20:31  pilao_diantou\pilao_diantou.dsp
     文件         549  2011-07-10 15:18  pilao_diantou\pilao_diantou.dsw
     文件       66560  2011-07-24 20:31  pilao_diantou\pilao_diantou.ncb
     文件       56832  2011-07-24 20:31  pilao_diantou\pilao_diantou.opt
     文件         260  2011-07-24 20:30  pilao_diantou\pilao_diantou.plg
     文件        1931  2011-07-24 20:30  pilao_diantou\pupilDetc.h
     文件         304  2011-07-21 08:28  pilao_diantou\pupilDetect.h
     文件     1853440  2007-06-05 03:22  pilao_diantou\Sample.avi
     文件        2136  2011-07-24 19:14  pilao_diantou\seqList.h
     文件        1761  2011-07-22 15:01  pilao_diantou\subImage.h
............此处省略0个文件信息

评论

共有 条评论

相关资源