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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
Python3读取文件常用方法实例分析
May 22 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
深入分析python中整型不会溢出问题
Jun 18 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Python代码块及缓存机制原理详解
Dec 13 Python
python中的线程threading.Thread()使用详解
Dec 17 Python
对Keras自带Loss Function的深入研究
May 25 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
学习php笔记 字符串处理
2010/10/19 PHP
通过php删除xml文档内容的方法
2015/01/23 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
Jquery 例外被抛出且未被接住原因介绍
2013/09/04 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
2017/02/23 Javascript
TypeScript入门-接口
2017/03/30 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python中map()与zip()操作方法
2016/02/27 Python
Python Requests安装与简单运用
2016/04/07 Python
详解django中自定义标签和过滤器
2017/07/03 Python
python中的break、continue、exit()、pass全面解析
2017/08/05 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
python Timer 类使用介绍
2020/12/28 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
Java多态性的定义以及类型
2014/09/16 面试题
毕业纪念册寄语大全
2015/02/26 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers