資源簡(jiǎn)介
基于opencv的C++人眼識(shí)別以及眨眼檢測(cè)源代碼

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“constants.h“
#include?“opencv2/opencv.hpp“
using?namespace?cv;
using?namespace?std;
/*?Global?variables?*/
//Mat?prevgray; //?first?attempt
Mat?previousFace;
Mat?currentFace;
bool?leftEyeOpen?=?true;
bool?rightEyeOpen?=?true;
int?calibrationFace?=?calibrationDefault;
int?blinkNumberLeft?=?0;
int?blinkNumberRight?=?0;
clock_t?leftEyeCloseTime;
clock_t?rightEyeCloseTime;
/*?Functions?*/
//void?findEyes(Mat?matCapturedGrayImage?Mat?matCapturedImage?CascadeClassifier?cascEye?CascadeClassifier?cascFace); //?first?attempt
//void?drawOptFlowMap(const?Mat&?flow?Mat&?cflowmap?int?step?double?scale?const?Scalar&?color); //?first?attempt
void?headTracing(Mat?matCapturedGrayImage?Mat?matCapturedImage?CascadeClassifier?cascEye?CascadeClassifier?cascFace?Rect?&detectedFaceRegion);
void?calcFlow(const?Mat&?flow?Mat&?cflowmap?double?scale?int?&globalMovementX?int?&globalMovementY);
Rect?findBiggestFace(Mat?matCapturedGrayImage?CascadeClassifier?cascFace);
void?eyeTracking(Mat?&matCurrentEye?Mat?&matPreviousEye);
void?getEyesFromFace(Mat?&matFace?Mat?&matLeftEye?Mat?&matRightEye);
void?detectblink(Mat?&matEyePrevious?Mat?&matEyeCurrent?String?eye?bool?&eyeOpen?int?&blinkNumber?clock_t?&closeTime);
/**************************************************************************???to_string_with_precision???**************************************************************************/
template?
///From?(for?example?double)?value?makes?string?with?just?whole?numbers
std::string?to_string_with_precision(const?T?a_value?const?int?n?=?6)
{
std::ostringstream?out;
out?< return?out.str();
}
/**************************************************************************???main???**************************************************************************/
///?Application?will?detect?eye?blinking?by?calculating?optical?flow?of?face?and?eyes?
int?main()
{
CascadeClassifier?cascFace?cascEye;
if?(!cascFace.load(frontalFacePath))?{
printf(“Error?loading?cascade?file?for?face“);
return?1;
}
if?(!cascEye.load(eyePath))?{
printf(“Error?loading?cascade?file?for?eye“);
return?1;
}
Rect?detectedFaceRegion; //?have?to?be?created?here;?if?it?was?inside?while?the?image?would?be?still?changing
cout?<“\n\tESC?-?turn?this?program?off\n\tf?-?recalibrate?face\n\tc?-?reset?counter\n\n“;
namedWindow(“Result“?CV_WINDOW_NORMAL);
VideoCapture?capture(0);
if?(!capture.isOpened())
{
printf(“error?to?initialize?camera“);
return?1;
}
Mat?matCapturedImage;
while?(1)
{
Mat?matCapturedGrayImage;
capture?>>?matC
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????421??2015-06-05?06:13??demo\constants.h
?????文件??????19796??2017-11-22?17:58??demo\main.cpp
?????目錄??????????0??2017-11-23?13:01??demo
-----------?---------??----------?-----??----
????????????????20217????????????????????3
評(píng)論
共有 條評(píng)論