一、使用OpenCV训练好的级联分类器来识别图像中的人脸

当然还有很多其他的分类器,例如表情识别,鼻子等,具体可在这里下载:

OpenCV分类器

import cv2

# 矩形颜色和描边
color = (0,0,255)       # 红色框
strokeWeight = 1        # 线宽为 1

windowName = "Object Detection"
img = cv2.imread("lena.jpg")# 加载检测文件
cascade = cv2.CascadeClassifier("F:/opencv-master/data/haarcascades/haarcascade_frontalface_alt.xml")rects = cascade.detectMultiScale(img)# 获取矩形列表
for x,y, width,height in rects:cv2.rectangle(img, (x,y), (x+width, y+height), color, strokeWeight)# 显示
cv2.imshow(windowName, img)
cv2.waitKey(0)

效果如图所示:

二、检测摄像头视频中的人脸

原理和在图片中检测出人脸差不多,都是加载训练好的分类器。

import cv2
import time
import numpy as np

print('Press Esc to exit')# 加载分类器
faceCascade = cv2.CascadeClassifier('F:/opencv-master/data/haarcascades/haarcascade_frontalface_default.xml')
imgWindow = cv2.namedWindow('FaceDetect', cv2.WINDOW_NORMAL)

def detect_face():capInput = cv2.VideoCapture(0)# 避免处理时间过长造成画面卡顿nextCaptureTime = time.time()faces = []# 检测摄像头是否读取数据if not capInput.isOpened(): print('Capture failed because of camera')while 1:ret, img = capInput.read()gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)if nextCaptureTime < time.time():nextCaptureTime = time.time() + 0.1# 使用模板匹配图形faces = faceCascade.detectMultiScale(gray, 1.3, 5)if np.all(faces != None):for x, y, w, h in faces:# 用蓝色框框出# 函数的参数分别为:图像,左上角坐标、右下角坐标、颜色、宽度img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)cv2.imshow('FaceDetect', img)# 这是简单的读取键盘输入,27即Esc的acsii码if cv2.waitKey(1) & 0xFF == 27: breakcapInput.release()cv2.destroyAllWindows()detect_face()

效果不错,就不展示图了(不想展示脸。。。。)

转载于:https://www.cnblogs.com/gezhuangzhuang/p/10697193.html

使用OpenCV训练好的级联分类器识别人脸相关推荐

  1. OpenCV3实现人脸识别(一)——基于OpenCV3级联分类器实现人脸检测与眼睛检测

    前言 1.OpenCV官方训练好的人脸和眼睛的级联分类器,3.30的版本都放在opencv\sources\data这个文件夹下,在OpenCV这个文件夹中,主要有 Haar特征 和 LBP特征进行人 ...

  2. OpenCV中基于Haar特征和级联分类器的人脸检测

    使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...

  3. OpenCV中基于Haar特征和级联分类器的人脸检测(三)

    使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...

  4. 基于OpenCV自带分类器识别人脸

    基于OpenCV自带分类器识别人脸 在VS2019下要安装适用于桌面的VC++ 2015(2017) v14 00(v14)工具集. 访问网站:https://visualstudio.microso ...

  5. 如何利用OpenCV自带的级联分类器训练程序训练分类器

    介绍 使用级联分类器工作包括两个阶段:训练和检测. 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍.当前的指南描述了如何训练分类器:准备训练数 ...

  6. opencv学习笔记五十三:训练自己的级联分类器

    训练工作主要分为如下几步: 加载训练环境 制作训练数据集 获取样本路径列表 生成正样本描述文件(.vec) 训练人脸分类器 使用分类器进行人脸检测 加载训练环境  训练过程主要依靠OpenCV自带的两 ...

  7. OpenCV实战5: LBP级联分类器实现人脸检测

    OpenCV中的HAAR与LBP数据 HAAR特征数据   参看 haarcascade_frontalface_alt.xml 各标签     LBP特征数据     参看 lbpcascade_f ...

  8. cascade自己训练级联分类器(人脸检测)

    cascade训练简介 后面有详细解释,和步骤代码的实现,可能需要简单修改,建议代码自己先写着试试 训练步骤 下载文件包opencv.这里的opencv是指编译好的.exe文件,不是需要编译的sour ...

  9. Opencv级联分类器实现人脸识别

    在本章中,我们将学习如何使用OpenCV使用系统相机捕获帧.org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法.让我们一步一步学习如何捕捉帧 - 第1步: ...

最新文章

  1. C语言中在常数后面加U、L、F的功能
  2. 看麻了!35岁奥地利总理辞职当码农
  3. java 置信区间_仅从均值和标准差绘制置信区间
  4. Android 第三章 SQLite 数据库
  5. java连接数据库的配置文件
  6. Web安全深度剖析-笔记
  7. 物联网和互联网之间,主要有什么关系?
  8. dbt2 mysql_mysql压力测试工具-DBT2 Benchmark Tool下载0.37.50.14-西西软件下载
  9. 树莓派开发板入门学习笔记2:[转]树莓派系统在VM中能做什么
  10. HTML5常用的文本标签及css字体样式属性
  11. PHP 常用字符串、数组处理函数
  12. 最大似然估计与极大似然估计_使用最大似然估计对NFL球队排名
  13. 嵌入式设备的JTAG,Angle,和ICE三种调试笔记
  14. 在线电子书阅读微信小程序 毕业设计(5)用户登录注册
  15. 开源(Open source)是什么?为什么要开源
  16. 项目屡屡破发,平台币遭遇价格腰斩:IEO的转折点已经到来
  17. Java黑科技之源:JVMTI完全解读
  18. 【电源】【PCB】电源板(提供±2v5,3v3,5v,12v供电)的制作——电赛使用
  19. JSP程序设计实训(一)—— JSP概述
  20. JavaScript实现春节倒计时

热门文章

  1. php示例代码之使用MySQLi接口
  2. vscode中使用md文件
  3. [USACO 4.2.2] The Perfect Stall 完美的牛栏
  4. iGuard简单突破
  5. 山科大 6-1 sdust-Java-可实现多种排序的Book类 (20 分)(18 软件 期中考试函数1)
  6. Excel VBA导出操作
  7. Android 控件右上角角标的实现方案
  8. linux at 邮箱,linux at 命令详解
  9. WebRTC -- 添加选择音频输入输出设备功能
  10. LINUX下磁盘管理的基本流程与相关操作命令