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解析XML的几种常见方法的介绍
Apr 09 Python
Python中的ctime()方法使用教程
May 22 Python
分分钟入门python语言
Mar 20 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
Python获取对象属性的几种方式小结
Mar 12 Python
python打包生成so文件的实现
Oct 30 Python
python 如何引入协程和原理分析
Nov 30 Python
pytorch显存一直变大的解决方案
Apr 08 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
用Flash图形化数据(一)
2006/10/09 PHP
PHP的开发框架的现状和展望
2007/03/16 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
PHP打印输出函数汇总
2016/08/28 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
vue组件表单数据回显验证及提交的实例代码
2018/08/30 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
基于Python3读写INI配置文件过程解析
2020/07/23 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
支教自我鉴定
2014/01/18 职场文书
认真学习保证书
2015/02/26 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
民政局未婚证明
2015/06/15 职场文书
元宵节晚会主持词
2015/07/01 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js