使用OpenCV训练好的级联分类器识别人脸
一、使用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训练好的级联分类器识别人脸相关推荐
- OpenCV3实现人脸识别(一)——基于OpenCV3级联分类器实现人脸检测与眼睛检测
前言 1.OpenCV官方训练好的人脸和眼睛的级联分类器,3.30的版本都放在opencv\sources\data这个文件夹下,在OpenCV这个文件夹中,主要有 Haar特征 和 LBP特征进行人 ...
- OpenCV中基于Haar特征和级联分类器的人脸检测
使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...
- OpenCV中基于Haar特征和级联分类器的人脸检测(三)
使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...
- 基于OpenCV自带分类器识别人脸
基于OpenCV自带分类器识别人脸 在VS2019下要安装适用于桌面的VC++ 2015(2017) v14 00(v14)工具集. 访问网站:https://visualstudio.microso ...
- 如何利用OpenCV自带的级联分类器训练程序训练分类器
介绍 使用级联分类器工作包括两个阶段:训练和检测. 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍.当前的指南描述了如何训练分类器:准备训练数 ...
- opencv学习笔记五十三:训练自己的级联分类器
训练工作主要分为如下几步: 加载训练环境 制作训练数据集 获取样本路径列表 生成正样本描述文件(.vec) 训练人脸分类器 使用分类器进行人脸检测 加载训练环境 训练过程主要依靠OpenCV自带的两 ...
- OpenCV实战5: LBP级联分类器实现人脸检测
OpenCV中的HAAR与LBP数据 HAAR特征数据 参看 haarcascade_frontalface_alt.xml 各标签 LBP特征数据 参看 lbpcascade_f ...
- cascade自己训练级联分类器(人脸检测)
cascade训练简介 后面有详细解释,和步骤代码的实现,可能需要简单修改,建议代码自己先写着试试 训练步骤 下载文件包opencv.这里的opencv是指编译好的.exe文件,不是需要编译的sour ...
- Opencv级联分类器实现人脸识别
在本章中,我们将学习如何使用OpenCV使用系统相机捕获帧.org.opencv.videoio包的VideoCapture类包含使用相机捕获视频的类和方法.让我们一步一步学习如何捕捉帧 - 第1步: ...
最新文章
- C语言中在常数后面加U、L、F的功能
- 看麻了!35岁奥地利总理辞职当码农
- java 置信区间_仅从均值和标准差绘制置信区间
- Android 第三章 SQLite 数据库
- java连接数据库的配置文件
- Web安全深度剖析-笔记
- 物联网和互联网之间,主要有什么关系?
- dbt2 mysql_mysql压力测试工具-DBT2 Benchmark Tool下载0.37.50.14-西西软件下载
- 树莓派开发板入门学习笔记2:[转]树莓派系统在VM中能做什么
- HTML5常用的文本标签及css字体样式属性
- PHP 常用字符串、数组处理函数
- 最大似然估计与极大似然估计_使用最大似然估计对NFL球队排名
- 嵌入式设备的JTAG,Angle,和ICE三种调试笔记
- 在线电子书阅读微信小程序 毕业设计(5)用户登录注册
- 开源(Open source)是什么?为什么要开源
- 项目屡屡破发,平台币遭遇价格腰斩:IEO的转折点已经到来
- Java黑科技之源:JVMTI完全解读
- 【电源】【PCB】电源板(提供±2v5,3v3,5v,12v供电)的制作——电赛使用
- JSP程序设计实训(一)—— JSP概述
- JavaScript实现春节倒计时