python利用OpenCV2实现人脸检测


Posted in Python onApril 16, 2020

最近,带领我的学生进行一个URTP项目设计,需要进行人脸识别。由于现在的OpenCV已经到了2.X版本,因此就不想用原来的1.X版本的代码,而网上存在的代码都是1.X版本的代码,尝试自己写一段2.X版本的代码,反复查阅资料,今天终于测试成功(很明显2.X版本的代码要比1.X的代码更简单),供大家好参考,代码如下:(2017年5月12日在python3.6.1下做一简单的修改)

import cv2
import numpy as np
cv2.namedWindow("test")#命名一个窗口
cap=cv2.VideoCapture(1)#打开1号摄像头
success, frame = cap.read()#读取一桢图像,前一个返回值是是否成功,后一个返回值是图像本身
color = (0,0,0)#设置人脸框的颜色
classfier=cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")#定义分类器
while success:
 success, frame = cap.read()
 size=frame.shape[:2]#获得当前桢彩色图像的大小
 image=np.zeros(size,dtype=np.float16)#定义一个与当前桢图像大小相同的的灰度图像矩阵
 image = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#将当前桢图像转换成灰度图像(这里有修改)
 cv2.equalizeHist(image, image)#灰度图像进行直方图等距化
 #如下三行是设定最小图像的大小
 divisor=8
 h, w = size
 minSize=(int(w/divisor), int(h/divisor))#这里加了一个取整函数
 faceRects = classfier.detectMultiScale(image, 1.2, 2, cv2.CASCADE_SCALE_IMAGE,minSize)#人脸检测
 if len(faceRects)>0:#如果人脸数组长度大于0
  for faceRect in faceRects: #对每一个人脸画矩形框
    x, y, w, h = faceRect
    cv2.rectangle(frame, (x, y), (x+w, y+h), color)
 cv2.imshow("test", frame)#显示图像
 key=cv2.waitKey(10)
 c = chr(key & 255)
 if c in ['q', 'Q', chr(27)]:
  break
cv2.destroyWindow("test")

效果图:

python利用OpenCV2实现人脸检测

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python线程详解
Jun 24 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
详解django自定义中间件处理
Nov 21 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
Python面向对象之Web静态服务器
Sep 03 Python
CentOS7下安装python3.6.8的教程详解
Jan 03 Python
TensorFlow实现自定义Op方式
Feb 04 Python
详解在Python中使用Torchmoji将文本转换为表情符号
Jul 27 Python
django和flask哪个值得研究学习
Jul 31 Python
Python实战之实现康威生命游戏
Apr 26 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 Python
Python判断文件和字符串编码类型的实例
Dec 21 #Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 #Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 #Python
基于Python的文件类型和字符串详解
Dec 21 #Python
Python绘制七段数码管实例代码
Dec 20 #Python
python代码实现ID3决策树算法
Dec 20 #Python
python决策树之CART分类回归树详解
Dec 20 #Python
You might like
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
js获取class的所有元素
2013/03/28 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
python中xrange用法分析
2015/04/15 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
Flask框架配置与调试操作示例
2018/07/23 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
介绍一下gcc特性
2012/01/20 面试题
Ajax主要包含了哪些技术
2014/06/12 面试题
自动化专业职业生涯规划书范文
2014/01/16 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
员工评语范文
2014/12/31 职场文书
质量保证书格式
2015/02/27 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技