资源简介
基于opencv cascade分类器及模板匹配算法实现的人脸检测及跟踪算法,首先 cascade检测到人脸,然后更新ROI区域,当检测不到人脸时使用模板匹配方法进行识别。i7上可达到80FPS,速率非常快,鲁棒性非常好,当头倾斜90°也能够跟踪。

代码片段和文件信息
#include “StdAfx.h“
#include
#include
#include “VideoFaceDetector.h“
#include
const cv::String WINDOW_NAME(“Camera video“);
//const cv::String CASCADE_FILE(“cascade_paper.xml“);
//const cv::String CASCADE_FILE(“haarcascade_frontalface_default.xml“);
const cv::String CASCADE_FILE(“haarcascade_frontalface_alt2.xml“);
//const cv::String CASCADE_FILE(“lbpcascade_frontalface.xml“);
//const cv::String CASCADE_FILE(“aGest.xml“);
int main(int argc char** argv)
{
// Try opening camera
cv::VideoCapture camera(0);
//cv::VideoCapture camera(“D:\\video.mp4“);
if (!camera.isOpened()) {
fprintf(stderr “Error getting camera...\n“);
exit(1);
}
cv::namedWindow(WINDOW_NAME cv::WINDOW_AUTOSIZE);
VideoFaceDetector detector(CASCADE_FILE camera);
cv::Mat frame;
double fps = 0 time_per_frame;
detector.setTemplateMatchingMaxDuration(1);
while (true)
{
int timebegin = 0;
int timeend = 0;
timebegin = clock();
auto start = cv::getCPUTickCount();
detector >> frame;
auto end = cv::getCPUTickCount();
timeend = clock();
printf( “Running time is: %f ms \n“ static_cast(timeend-timebegin)/CLOCKS_PER_SEC*1000);//输出运行时间
time_per_frame = (end - start) / cv::getTickFrequency();
fps = (15 * fps + (1 / time_per_frame)) / 16;
//printf(“Time per frame: %3.3f\tFPS: %3.3f\n“ time_per_frame fps);
cv::rectangle(frame detector.face() cv::Scalar(255 0 0));
cv::circle(frame detector.facePosition() 30 cv::Scalar(0 255 0));
cv::imshow(WINDOW_NAME frame);
if (cv::waitKey(1) == 27) break;
}
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2359296 2016-11-18 14:47 人脸j检测及跟踪\ipch\opentest-aab0e643\opentest-526e489e.ipch
文件 74652 2009-11-16 10:42 人脸j检测及跟踪\opentest\aGest.xm
文件 74941 2016-09-29 11:11 人脸j检测及跟踪\opentest\cascade_paper.xm
文件 540616 2015-01-25 14:31 人脸j检测及跟踪\opentest\haarcascade_frontalface_alt2.xm
文件 51856 2013-11-13 17:44 人脸j检测及跟踪\opentest\lbpcascade_frontalface.xm
文件 1709 2016-11-18 14:47 人脸j检测及跟踪\opentest\opentest.cpp
文件 5057 2016-11-11 10:17 人脸j检测及跟踪\opentest\opentest.vcxproj
文件 1512 2016-11-11 10:17 人脸j检测及跟踪\opentest\opentest.vcxproj.filters
文件 143 2015-11-02 15:16 人脸j检测及跟踪\opentest\opentest.vcxproj.user
文件 1560 2015-11-02 15:16 人脸j检测及跟踪\opentest\ReadMe.txt
文件 213 2015-11-02 15:16 人脸j检测及跟踪\opentest\stdafx.cpp
文件 233 2015-11-02 15:16 人脸j检测及跟踪\opentest\stdafx.h
文件 236 2015-11-02 15:16 人脸j检测及跟踪\opentest\targetver.h
文件 9278 2016-11-14 10:51 人脸j检测及跟踪\opentest\VideoFaceDetector.cpp
文件 2399 2016-11-14 10:43 人脸j检测及跟踪\opentest\VideoFaceDetector.h
文件 891 2015-11-02 15:16 人脸j检测及跟踪\opentest.sln
..A..H. 31232 2016-11-18 14:47 人脸j检测及跟踪\opentest.suo
目录 0 2016-11-18 14:48 人脸j检测及跟踪\ipch\opentest-aab0e643
目录 0 2016-11-18 14:48 人脸j检测及跟踪\ipch
目录 0 2016-11-18 14:49 人脸j检测及跟踪\opentest
目录 0 2016-11-18 14:48 人脸j检测及跟踪
----------- --------- ---------- ----- ----
3155824 21
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- opencl编程指南随书代码
- OPENCL编程指南随书源码
- 移远OpenCPU快速开始指导手册
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- 论文研究-基于肤色和AdaBoost算法的彩
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- Emgu.CV 打开视频与人脸检测
- OpenCC-1.0.5-Win32
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencat所有资料.zip
- opencv实现的sift算法源码,包含了图像
评论
共有 条评论