OpenCv —— 人脸识别(附完整源码)
效果
源码工程下载
完整源码
源码
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/calib3d/calib3d.hpp>#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>using namespace cv;
using namespace std;int main(int argc, char** argv)
{VideoCapture capture("C:\\Users\\lk\\Downloads\\cvdemo-master\\haarcascades\\test.mp4");if (!capture.isOpened())return -1;CascadeClassifier face_cascade;if (!face_cascade.load("haarcascade_frontalface_alt.xml")){cout << "Load haarcascade_frontalface_alt failed!" << endl; return 0;}CascadeClassifier eye_Classifier;if (!eye_Classifier.load("haarcascade_eye.xml")){cout << "Load haarcascade_eye.xml failed!" << endl; return 0;}//【2】循环显示每一帧int i = 1;while (i++){Mat frame, image_gray; //定义一个Mat变量,用于存储每一帧的图像capture >> frame; //读取当前帧//frame = cv::imread("test.jpg");if (frame.empty()){cout << "--(!) No captured frame -- Break!" << endl;//break; }else{cv::resize(frame, frame, cv::Size(frame.cols/4, frame.rows/4));cvtColor(frame, image_gray, CV_BGR2GRAY);//转为灰度图equalizeHist(image_gray, image_gray);//直方图均衡化,增加对比度方便处理//检测关于脸部位置vector<Rect> faceRect;double t1 = cv::getTickCount();face_cascade.detectMultiScale(image_gray, faceRect);double t2 = cv::getTickCount();cout << "face time:" << (t2 - t1) / getTickFrequency() << "\n";for (size_t i = 0; i < faceRect.size(); i++)rectangle(frame, faceRect[i], Scalar(0, 255, 255));// 检测关于眼睛位置(识别不准确,可以自行编码开启学习生成xml)vector<Rect> eyeRect;t1 = cv::getTickCount();eye_Classifier.detectMultiScale(image_gray, eyeRect);//检测t2 = cv::getTickCount();cout << "eye time:" << (t2 - t1) / getTickFrequency() << "\n\n\n";for (size_t eyeIdx = 0; eyeIdx < eyeRect.size(); eyeIdx++)rectangle(frame, eyeRect[eyeIdx], Scalar(0, 255, 0));imshow("人脸识别图", frame); //显示当前帧}waitKey(1);}return 0;
}
关注
笔者 - jxd
微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O
OpenCv —— 人脸识别(附完整源码)相关推荐
- OpenCV人脸识别LBPH算法源码分析
1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻 ...
- OpenCV人脸识别Eigen算法源码分析
1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...
- android 静态图片自动切换,Android静态图片人脸识别的完整demo(附完整源码)
Android静态图片人脸识别的完整demo(附完整源码) 来源:互联网 作者:佚名 时间:2015-03-24 20:07 本文介绍了android静态识别人脸并进行标记人眼位置及人脸框的完整dem ...
- OpenCV+百度云人脸识别项目及源码
OpenCV+百度云人脸识别项目及源码 1.需要的硬件环境 虚拟机 带有摄像头的电脑 2.整体项目的框架 用Opencv识别人脸,上传百度云进行识别对比 3.虚拟机上需要装的库 sudo apt-ge ...
- 人脸检测颜值软件_百度AI人脸识别测颜值源码
百度AI人脸识别测颜值由百度AI官方推出百度AI人脸识别测颜值源码,目前已将人脸识别氛围V2和V3两个接口,使用前需要参考相应的文档权限来选择接口类型.今天为大家带来的源码,就是让大家能够了解学习到百 ...
- 百度AI人脸检测测颜值php,百度AI人脸识别测颜值源码app
百度AI人脸识别测颜值源码app是由百度AI官方提供的,将人脸识别分为了两个接口,v2与vv3.需要根据文档权限来选择接口类型,这款软件非常方便用户学习和体验.想要学习相关信息的朋友可以来看看哦. 百 ...
- JavaScript实现唯一路径问题的动态编程方法的算法(附完整源码)
JavaScript实现唯一路径问题的动态编程方法的算法(附完整源码) dpUniquePaths.js完整源代码 dpUniquePaths.test.js完整源代码 dpUniquePaths.j ...
- JavaScript实现唯一路径问题的回溯方法的算法(附完整源码)
JavaScript实现唯一路径问题的回溯方法的算法(附完整源码) btUniquePaths.js完整源代码 btUniquePaths.test.js完整源代码 btUniquePaths.js完 ...
- JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码)
JavaScript实现squareMatrixRotation方阵旋转算法(附完整源码) squareMatrixRotation.js完整源代码 squareMatrixRotation.test ...
- JavaScript实现递归楼梯问题(带记忆的递归解决方案)算法(附完整源码)
JavaScript实现递归楼梯问题(带记忆的递归解决方案)算法(附完整源码) recursiveStaircaseMEM.js完整源代码 recursiveStaircaseMEM.test.js完 ...
最新文章
- JS计算起点坐标到终点坐标的驾车距离和驾车时间
- java08 Set
- Android源码项目目录结构
- java方便适配器,JAXB简单自定义适配器以及简单使用
- Boost:标记的的bimap双图测试程序
- 探索Julia(part6)--基本命令与数学函数
- Linux:客户端的实现
- .NET+PostgreSQL实践与避坑指南
- 深入浅出组合逻辑电路(3)常见的几种编码器
- java架构师之路:JAVA程序员必看的15本书的电子版下载地址
- 自定义JPA之AttributeConverter
- java重载能否发生多次,java - 在Java中重载和多次调度 - SO中文参考 - www.soinside.com...
- 计算机科学导论数据运算,补基础:自学:计算机科学导论 第四章 数据运算(示例代码)...
- linux系统创建lvm卷,Linux逻辑卷LVM实现
- Django之路——4 Django的视图层
- Windows平台实现真实时毫秒级4K H264/H265直播技术(硬编码技术方案)
- 嵌入式软件与设计 学习笔记总结一
- vps和云主机哪个好
- 【5月比赛合集】80场可报名的数据挖掘大奖赛,任君挑选!
- 【蓝桥杯2019Java】平方和、最大降雨量