本博客直接调用OpenCV2.4.13附带的训练好的人脸检测分类器,使用AdaBoost方法对电脑自带摄像头进行人脸识别。
face_detection.cpp:

#include <stdio.h>
#include <iostream>
#include <string>
//OpenCV
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"using namespace std;
using namespace cv;std::string face_cascade_name = "haarcascade_frontalface_alt.xml";
CascadeClassifier face_cascade;
string window_name = "Face detection";//detect your face
void DetectObject(cv::Mat& frame){namedWindow(window_name,CV_WINDOW_NORMAL);std::vector<Rect> faces;Mat frame_gray;cvtColor(frame, frame_gray, COLOR_BGR2GRAY);//equalizeHist(frame_gray, frame_gray);//直方图均衡化//-- 人脸检测face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));for (size_t i = 0; i < faces.size(); i++){Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2);int radius = cvRound((faces[i].width + faces[i].height)*0.25);cv::circle(frame, center, radius, cv::Scalar(255, 0, 0),3);//draw circle//cv::rectangle(frame, faces[i], cv::Scalar(0, 255, 0), 4);//draw rectangle}//-- 显示最终效果图imshow(window_name, frame);
}int main( void )
{//-- 1. 加载级联(cascades)if( !face_cascade.load( face_cascade_name ) ){ printf("no cascade file!!\n"); return -1; };//-- 2. 读取视频VideoCapture capture;Mat frame;cout<<"begin to open camera"<<endl;capture.open(1); //open the cameraif( capture.isOpened() ){cout<<"camera is opened!"<<endl;for(;;){capture >> frame;//-- 3. 对当前帧使用分类器(Apply the classifier to the frame)if( !frame.empty() ){DetectObject(frame);}else{printf("No captured frame!!");break;}waitKey(50);}}else{cout<<"Opps,Cannot open the camera!!"<<endl;}return 0;
}

同目录下创建CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(face_detection)
if(NOT CMAKE_BUILD_TYPE)set(POSSIBLE_BUILD_TYPES "Debug Release RelWithDebInfo MinSizeRel")set(CMAKE_BUILD_TYPE "Release" CACHE STRING"Choose the type of build, options are: ${POSSIBLE_BUILD_TYPES}." FORCE)
endif(NOT CMAKE_BUILD_TYPE)
message(STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE})#find package
find_package(OpenCV 2.4.13 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})add_executable(face_detection face_detection.cpp)
target_link_libraries(face_detection ${OpenCV_LIBS})

Ubuntu下在该文件根目录下打开终端,执行:

mkdir build
cd build
cmake ..
make -j6

会生成一个可执行文件face_detection
将OpenCV自带的haarcascade_frontalface_alt.xml文件拷贝至build目录下,执行:

./face_detection

即可实现打开电脑摄像头进行人脸识别功能了。

OpenCV人脸识别代码相关推荐

  1. opencv 全志_移植opencv人脸识别到全志A10开发板上 +linux3.0内核

    移植opencv人脸识别 libz:    zlib-1.2.3 libjpeg:   jpegsrc.v6b libpng:   libpng-1.2.18 libyasm:   yasm-0.7. ...

  2. 人脸识别代码_10行代码实现人脸识别

    什么是人脸识别 人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术 ...

  3. insightface人脸识别代码记录(一)(数据前期准备)

    一.前言 这部分主要讲训练数据的制作.一是我们直接采用作者提供好的数据集,二就是制作我们自己所需要的数据集. 目录地址:insightface人脸识别代码记录(总)(基于MXNet) 二.主要内容 1 ...

  4. Python+OpenCV人脸识别签到考勤系统(新手入门)

    Python+OpenCV人脸识别签到考勤系统(新手入门) 前言 项目效果图 项目需要的环境 编译器 辅助开发QT-designer 项目配置 代码部分 核心代码 项目目录结构 后记 正式版改进 项目 ...

  5. python opencv人脸识别考勤系统的完整源码

    这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...

  6. 【opencv人脸识别1】从图片中检测人脸

    [opencv人脸识别一]从图片中检测人脸 本系列主要讲述利用opencv实现人脸识别的相关知识,并给出实际代码.且循序渐进,由基础到复杂,从最基本的图片检测人脸到视频检测.识别人脸,再到较大型人脸数 ...

  7. python人脸检测代码_python实现人脸识别代码

    从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别.程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特征模型,如此即 ...

  8. 如何安装并使用SeetaFace 开源人脸识别代码【中科院计算机所山世光老师团队研发】

    最近因为导师接到了一个关于人脸识别的开发项目,需要我们去寻找一些开源的可以二次开发的人脸识别程序.(说白了就是想白嫖,直接调用人家的接口不香吗,可是那得花钱),这时候就在看到网友推荐的SeetaFac ...

  9. OpenCV 人脸识别 源代码

    请直接查看原文 OpenCV 人脸识别 源代码 https://hotdog29.com/?p=553 在 2019年7月6日 上张贴 由 hotdog发表回复 opencv 人脸识别 在本教程中,您 ...

最新文章

  1. javascript 中的eval方法 小窍门
  2. Android初学者教程
  3. 百度地图-矩形编辑的模拟实现
  4. 从零开始学习docker(九)持久化存储和数据共享之 Data Volume
  5. Rails安全导读【完】
  6. 第四十五期:万亿级日访问量下,Redis在微博的9年优化历程
  7. 11个方法,打造用户增长体系
  8. Vue多组件切换,并相互传值(在created和mounted生命周期钩子函数中渲染数据的区别)
  9. 35岁逃离北上广,40岁失业送外卖,中年人的“体面”在于投资自己
  10. 【附白皮书下载】专家黄正杰:从微笑曲线出发,思考制造业数字化转型方向
  11. android底层优化什么意思,华为所谓的“优化”到底是什么意思 看完这段你就明白...
  12. 易經大意(6) 三和 韓長庚 著
  13. 计算机课程教改论文,关于计算机基础课程教学改革论文(2)
  14. Vue.js学习笔记—调查问卷WebApp
  15. eclipse m2eclipse插件迁移到m2e插件
  16. 普通for和增强for
  17. Ubuntu 系统 文件的颜色代表的意义
  18. 冰雪复古鸿蒙碎片哪里爆,冰雪传奇:稀有材料道具掉落较多的地图是哪些?
  19. python3 os模块_python3 os模块
  20. win7 装系统踩坑之无法进入到u盘启动或无法进到BIOS

热门文章

  1. 利用python打开电脑摄像头
  2. Windows下Visual Studio无法引入Python.h文件
  3. Unity性能优化教程
  4. 14 个实用的数据库设计技巧
  5. 微信小程序通过经纬度获取当前省市区及地址信息
  6. python百度ai拼接身份证_Python 百度ai身份证接口案例
  7. 20190923-08Linux压缩和解压类 000 016
  8. java 微博 屏蔽_新浪微博的屏蔽用户机制很有趣啊
  9. 有一行电文,已按下面规律译成密码: a→z b→y c→x A→Z B→Y C→X ,输出原文
  10. 干货|亚马逊入驻收款方式设置