OpenCv 人脸识别 基础
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std; int main() {
// 摄像头
cv::VideoCapture vc(); // 人脸分类器
const char* filename = "D:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt2.xml";
cv::CascadeClassifier face_cascade;
// 加载人脸分类器
if (!face_cascade.load(filename)) {
return -;
} // 用来检测的图为原图的大小比例
float scale = 0.3f;
// 图
cv::Mat mat, mat2;
// 检测得到的人脸的结果
vector<cv::Rect> faces_result; while (true) {
if (vc.isOpened()) {
if (vc.retrieve(mat)) {
// 将原图像水平反转(这样更符合人的习惯)
cv::flip(mat, mat, );
// 缩小
cv::resize(mat, mat2, cv::Size(mat.cols * scale, mat.rows * scale));
// 变灰
cv::cvtColor(mat2, mat2, CV_BGR2GRAY);
cv::equalizeHist(mat2, mat2); //////////// 开始检测人脸 ////////////
face_cascade.detectMultiScale(mat2, faces_result); // 将结果显示在原图上
for (auto face : faces_result) {
cv::Point center(face.x / scale + face.width / / scale, face.y / scale + face.height / / scale);
cv::ellipse(mat, center, cv::Size(face.width / / scale, face.height / / scale), , , , cv::Scalar(, , ), , , );
} // 显示出来
cv::imshow("My Face", mat);
}
} // 接收到输入时 退出
if (cv::waitKey() > ) {
break;
}
} return ;
}
OpenCv 人脸识别 基础的更多相关文章
- opencv人脸识别代码
opencv人脸识别C++代码 /* * Copyright (c) 2011,2012. Philipp Wagner <bytefish[at]gmx[dot]de>. * Relea ...
- OpenCV人脸识别的原理 .
OpenCV人脸识别的原理 . 在之前讲到的人脸测试后,提取出人脸来,并且保存下来,以供训练或识别是用,提取人脸的代码如下: void GetImageRect(IplImage* orgImage, ...
- opencv人脸识别提取手机相册内人物充当数据集,身份识别学习(草稿)
未写完 采用C++,opencv+opencv contrib 4.1.0 对手机相册内人物opencv人脸识别,身份识别学习 最近事情多,介绍就先不介绍了 photocut.c #include & ...
- OpenCV 和 Dlib 人脸识别基础
00 环境配置 Anaconda 安装 1 下载 https://repo.anaconda.com/archive/ 考虑到兼容性问题,推荐下载Anaconda3-5.2.0版本. 2 安装 3 测 ...
- opencv 人脸识别
背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...
- OpenCV人脸识别Eigen算法源码分析
1 理论基础 学习Eigen人脸识别算法需要了解一下它用到的几个理论基础,现总结如下: 1.1 协方差矩阵 首先需要了解一下公式: 共公式可以看出:均值描述的是样本集合的平均值,而标准差描述的则是样本 ...
- OpenCV人脸识别LBPH算法源码分析
1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻 ...
- OpenCV 人脸识别 C++实例代码
#include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include & ...
- opencv 人脸识别 (二)训练和识别
上一篇中我们对训练数据做了一些预处理,检测出人脸并保存在\pic\color\x文件夹下(x=1,2,3,...类别号),本文做训练和识别.为了识别,首先将人脸训练数据 转为灰度.对齐.归一化,再放入 ...
随机推荐
- PHP安全之register_globals (转)
一.register_globals = Off 和 register_globals = On的区别 register_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过 ...
- linux I2C_client产生方法一
\arch\arm\mach-omap2/board-am335xevm.c static struct i2c_board_info am335x_i2c2_boardinfo[] = { { I ...
- js搞定网页的简繁转换
对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...
- Oracle的静默安装 升级和卸载 参考规范
Oracle的静默安装 升级和卸载 参考规范 20180912 V1 一.Oracle的安装 Oracle产品的三种安装方式分别为: 1.图形化(Java向导)安装引导 2.使用应答文件静默安装 3. ...
- vue 操作数组,原数组怎么不让它改变
vue中肯定遇到过这个问题,想对数组操作,可是原数组又会改变,怎么办呢,提前copy一份能行吗, todo: [1,2,3,4,5], var arr = this.todo: 这样肯定不行的,那么肯 ...
- Hadoop高级培训课程大纲-管理员版
一.课程概述 本次培训课程主要面向大数据系统管理人员和开发设计人员,基于开源社区大数据应用最活跃的Hadoop和HBase技术框架.围绕分布式文件存储(HDFS).分布式并行计算(Map/Recue) ...
- SpringCloud负载均衡笔记
SpringCloud的负载均衡组件用的是Ribbon,这个东西就是服务消费者.它只是一个配置用的中转器,放在 Zuul 和 Eureka Client 之间用来转发的,它里面写了好多规则,用来指定负 ...
- 绕过限制,在PC上调试微信手机页面
场景 假设一个手机页面,开发者对其做了限制,导致只能在微信客户端中打开.而众所周知手机上非常不利于调试页面,所以需要能在电脑上打开并进行调试.这里针对常见的三种页面做一下分析,一一绕过其限制,(当然不 ...
- FDD vs TDD
双工方式 FDD vs TDD 频分双工(FDD) 收发信各占用一个频率. 优点是收.发信号同时进行,时延小,技术成熟,缺点是设备成本高. 时分双工(TDD) 收发信使用同一个频率,但使用不同 ...
- python应用之爬虫实战1 爬虫基本原理
知识内容: 1.爬虫是什么 2.爬虫的基本流程 3.request和response 4.python爬虫工具 参考:http://www.cnblogs.com/linhaifeng/article ...