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 import自定义模块方法
Feb 12 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
python 写入csv乱码问题解决方法
Oct 23 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
python文件特定行插入和替换实例详解
Jul 12 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
Django创建一个后台的基本步骤记录
Oct 02 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 单引号与双引号的区别
2009/11/24 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jQuery实现点击后高亮背景固定显示的菜单效果【附demo源码下载】
2016/09/21 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python 内置函数complex详解
2016/10/23 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python global关键字的用法详解
2019/09/05 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
Python datetime 如何处理时区信息
2020/09/02 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
员工合理化建议书
2014/05/19 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
师德师风学习材料
2014/12/19 职场文书
孔庙导游词
2015/02/04 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL