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 相关文章推荐
Linux下Python获取IP地址的代码
Nov 30 Python
python编程羊车门问题代码示例
Oct 25 Python
Python装饰器基础概念与用法详解
Dec 22 Python
python实现浪漫的烟花秀
Jan 30 Python
将python文件打包成EXE应用程序的方法
May 22 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Python bisect模块原理及常见实例
Jun 17 Python
python 利用toapi库自动生成api
Oct 19 Python
python 获取剪切板内容的两种方法
Nov 28 Python
Python获取指定网段正在使用的IP
Dec 14 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
理解Python垃圾回收机制
2016/02/12 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
神路信息Java面试题目
2013/03/31 面试题
毕业生精彩的自我评价分享
2013/10/06 职场文书
工作交流会欢迎词
2014/01/12 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
收入证明申请书
2015/06/12 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL