资源简介

人脸检测,检测人睁闭眼睛,可以判断是否疲劳驾驶,代码是vc+opencv工程,里面自带有opencv的dll库。

资源截图

代码片段和文件信息

// FatigueDetecting.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include 
#include 
#include 
#include “FaceDetect.h“
#include “Function.h“
#include “SVMTrain.h“
#include “Feature.h“
using namespace DpFat;
using namespace std;

const int DESIRED_CAMERA_WIDTH = 640;
const int DESIRED_CAMERA_HEIGHT = 480;
const char *windowName = “CameraFaceRec“;   // Name shown in the GUI window.
#if !defined VK_ESCAPE
#define VK_ESCAPE 0x1B      // Escape character (27)
#endif


void ImgTest();
void VideoTest();
void CameraTest();
const string option[] =
{
“1. 图片测试;“
“2. 视频测试;“
“3. 摄像头测试;“
“4. SVM训练(没分类);“
“5. SVM训练(已分类);“
“6. SVM测试;“
“7. 退出;“
};

const int optionCount = 7;

int _tmain(int argc _TCHAR* argv[])
{
bool isExit = false;

while (isExit != true)
{
stringstream selectOption(stringstream::in | stringstream::out);
selectOption << “Fatigue Detecting Option:“<< endl;
for(int i = 0; i < optionCount; i++)
{
selectOption << option[i] << endl;
}

cout << “////////////////////////////////////“<< endl;
cout << selectOption.str();
cout << “////////////////////////////////////“<< endl;
cout << “请选择一项操作:“;

int select = -1;
bool isRepeat = true;
while (isRepeat)
{
cin >> select;
isRepeat = false;
switch (select)
{
case 1:
ImgTest();
break;
case 2:
VideoTest();
break;
case 3:
CameraTest();
break;
case 4:
SVMTrain(false);
break;
case 5:
SVMTrain(true);
break;
case 6:
SVMTest();
break;
case 7:
isExit = true;
break;
case -1:
isExit = true;
break;
default:
cout << “输入错误,请重新输入:“;
isRepeat = true;
select=5;
break;
}
}
}
return 0;
}

void ImgTest()
{
static const char* const path = “../data/144909636.webp“;
cv::Mat_ img(cv::imread(path CV_LOAD_IMAGE_GRAYSCALE));

if (!img.data)
{
printf(“Cannot load %s\n“ path);
return;
}
FaceDetect detect;
if(!detect.LoadCascades(“../data/“))
{
cout<<“Load detect cascade error!“< }

try
{
CvSVM svm;
string path = “svmfat.xml“;
svm.load(path.c_str() “svm“);

cout << “Begin to predict“ << endl;

Face aFace=detect.DetectFace(img);
cv::Rect rcFace=aFace.GetFace();
if (rcFace.width>0)
{
rectangle(imgrcFaceScalar(000)2);
cv::Rect rcLEye=aFace.GetLEye();
cv::Rect rcREye=aFace.GetREye();
int iLfet=1iRight=1;
if (rcREye.width>0)
{
//rectangle(imgrcREyeScalar(000)2);
Mat eye=img(rcREye).clone();
resize(eyeeyecv::Size(F_WIDTHF_HEIGHT));
equalizeHist(eyeeye);
Mat features;
GetHistogram(eye features);

features = features.reshape(1 1);
features.convertTo(features CV_32FC1);

iRight = (int)svm.predict(features);
if (iRight)
{
cout<<“open right eye!“< }
else

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-03-02 16:29  FatigueDetecting\
     目录           0  2017-12-27 16:55  FatigueDetecting\Debug\
     文件        8162  2016-03-28 16:22  FatigueDetecting\Debug\BuildLog.htm
     目录           0  2016-03-02 16:29  FatigueDetecting\DpPerclos\
     文件         520  2015-06-01 08:45  FatigueDetecting\DpPerclos\Face.cpp
     文件         715  2015-06-01 09:07  FatigueDetecting\DpPerclos\Face.h
     文件        6605  2015-06-08 17:14  FatigueDetecting\DpPerclos\FaceDetect.cpp
     文件        1457  2015-06-01 09:07  FatigueDetecting\DpPerclos\FaceDetect.h
     文件        2705  2015-06-09 09:15  FatigueDetecting\DpPerclos\Feature.cpp
     文件         890  2015-06-10 15:25  FatigueDetecting\DpPerclos\Feature.h
     文件        9328  2015-06-05 09:13  FatigueDetecting\DpPerclos\Function.cpp
     文件        2275  2015-06-05 09:13  FatigueDetecting\DpPerclos\Function.h
     文件        4479  2015-06-08 08:58  FatigueDetecting\DpPerclos\Histogram.h
     文件       12020  2015-06-09 10:22  FatigueDetecting\DpPerclos\SVMTrain.cpp
     文件         813  2015-06-09 13:54  FatigueDetecting\DpPerclos\SVMTrain.h
     文件       15127  2015-06-11 16:55  FatigueDetecting\FatigueDetecting.cpp
     文件        6618  2015-06-05 09:32  FatigueDetecting\FatigueDetecting.vcproj
     文件        1423  2017-12-27 17:00  FatigueDetecting\FatigueDetecting.vcproj.DEPPON.141176.user
     文件        1423  2015-06-16 18:13  FatigueDetecting\FatigueDetecting.vcproj.zr-PC.zr.user
     文件        1237  2015-05-29 16:58  FatigueDetecting\ReadMe.txt
     目录           0  2017-12-27 16:58  FatigueDetecting\Release\
     文件       12168  2015-06-11 17:25  FatigueDetecting\Release\BuildLog.htm
     文件     1031542  2015-06-01 14:17  FatigueDetecting\Release\Face.obj
     文件     1073052  2015-06-08 17:14  FatigueDetecting\Release\FaceDetect.obj
     文件         616  2015-06-11 17:25  FatigueDetecting\Release\FatigueDetecting.exe.intermediate.manifest
     文件     1132734  2015-06-11 17:25  FatigueDetecting\Release\FatigueDetecting.obj
     文件     1062786  2015-06-10 15:25  FatigueDetecting\Release\Feature.obj
     文件     1182296  2015-06-05 09:13  FatigueDetecting\Release\Function.obj
     文件     1193043  2015-06-10 15:25  FatigueDetecting\Release\SVMTrain.obj
     文件          65  2015-06-11 17:25  FatigueDetecting\Release\mt.dep
     文件       35102  2015-06-01 14:17  FatigueDetecting\Release\stdafx.obj
............此处省略512个文件信息

评论

共有 条评论