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实时获取cmd的输出
Dec 13 Python
Python缩进和冒号详解
Jun 01 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
Python中的sort()方法使用基础教程
Jan 08 Python
python计算auc指标实例
Jul 13 Python
python的中异常处理机制
Aug 30 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
python实现tail实时查看服务器日志示例
Dec 24 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
总结Python连接CS2000的详细步骤
Jun 23 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利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
asp批量修改记录的代码
2008/06/25 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
Javascript复制实例详解
2016/01/28 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
Python搭建FTP服务器的方法示例
2018/01/19 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
简单了解python的break、continue、pass
2019/07/08 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
python中操作文件的模块的方法总结
2021/02/04 Python
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
网络安全方面的面试题
2015/11/04 面试题
资产评估专业学生的自我鉴定
2013/11/14 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2016年班主任新年寄语
2015/08/18 职场文书