資源簡介
在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.xm
?????目錄???????????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.xm
?????文件??????323227??2011-07-08?10:57??pilao_diantou\haarcascade_lefteye_2splits.xm
?????文件??????324586??2011-07-08?10:57??pilao_diantou\haarcascade_righteye_2splits.xm
?????文件?????????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個文件信息
- 上一篇:江蘇C語言二級試題真題集
- 下一篇:一個會朗讀文本的MFC應用程序
評論
共有 條評論