资源简介
基于opencv的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 << std::setprecision(n) << a_value;
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 人脸识别(opencv_facedetect_v4l2)
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- 基于opencv的模板匹配代码
- c++ 画图(14Qt-XPS)
评论
共有 条评论