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使用sftp实现上传和下载功能(实例代码)
Mar 14 Python
python操作oracle的完整教程分享
Jan 30 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python字符串Intern机制详解
Jul 01 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
关于Python解包知识点总结
May 05 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
python中pickle模块浅析
Dec 29 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示例代码
2016/08/05 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
用于table内容排序
2006/07/21 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
放飞蜻蜓反思
2014/02/05 职场文书
三查三看党性分析材料
2014/02/18 职场文书
学习雷锋标语
2014/06/25 职场文书
校园广播稿精选
2014/10/01 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
教师研修随笔感言
2015/11/18 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android