本博客直接调用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. 从sql中image类型字段中导出图片
  2. 机器“血液”登上Nature:一条假鱼靠它续航36小时,无需固态电池
  3. Python编程系列教程第16讲——拷贝自身到系统目录
  4. 西雅图SQL PASS之旅
  5. 中国省市区json分享
  6. origin纵坐标如何改成百分制,origin作图时,坐标刻度默认向外,我知道如何改成向内,但每次改很麻烦,如何设置使刻度默认向内?...
  7. 电商页面设计需要的素材模板|好的模板就是好的参考
  8. linux mv命令: 移动文件或文件改名
  9. java TreeSet去重与排序入门
  10. Django自学笔记之admin中设置App名称为中文
  11. Android性能优化系列:内存优化
  12. EPSON TM U220串口打印机乱码
  13. 字节跳动/今日头条校招大礼包 2019年校招大礼包
  14. svc的参考文献_浅谈SVC的原理及作用
  15. 2021年起重机司机(限桥式起重机)考试题库及起重机司机(限桥式起重机)找解析
  16. 【分布式微服务】消息中心初步搭建
  17. ECS 7天实践训练营day5-安装Linux服务器面板管理工具
  18. 历年世界10大经济体及GDP列表
  19. f协议 openmessage_tencent://message协议
  20. 常用Linux操作系统的发展历史

热门文章

  1. 虚拟机安装 | 远程连接服务器
  2. AirPods:如何在设备之间自动切换?
  3. 前端--工具--火狐代码美化
  4. 面试分享:两年工作经验成功面试阿里P6总结
  5. android 7红米3,红米3/OPPO Find 7在列 Lineage OS支持设备更新
  6. 计算机桌面死机的原因是,电脑老是死机的原因有哪些 7种常见的解决方法
  7. 滚珠螺杆使用时变黑是为什么?
  8. iMovie导出的mp4在windows下播放一卡一卡的怎么办
  9. nginx upstream模块配置
  10. Win32编程之从内存中加载位图,并显示到hdc上