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中的startswith和endswith函数使用实例
Aug 25 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
对python调用RPC接口的实例详解
Jan 03 Python
Python地图绘制实操详解
Mar 04 Python
详解用python生成随机数的几种方法
Aug 04 Python
python如何实现复制目录到指定目录
Feb 13 Python
python datetime处理时间小结
Apr 16 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
python实现npy格式文件转换为txt文件操作
Jul 01 Python
python openCV自制绘画板
Oct 27 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之PHP语法学习笔记1
2006/12/17 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php实现对象克隆的方法
2015/06/20 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
chrome原生方法之数组
2011/11/30 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
Python中存取文件的4种不同操作
2018/07/02 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python实现对adb命令封装
2020/03/06 Python
什么是设计模式
2012/06/17 面试题
冬季安全检查方案
2014/05/23 职场文书
工程项目经理任命书
2014/06/05 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
病危通知单
2015/04/17 职场文书
涨价通知怎么写
2015/04/23 职场文书
Node与Python 双向通信的实现代码
2021/07/16 Javascript
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技