基于python3 OpenCV3实现静态图片人脸识别


Posted in Python onMay 25, 2018

本文采用OpenCV3和Python3 来实现静态图片的人脸识别,采用的是Haar文件级联。

首先需要将OpenCV3源代码中找到data文件夹下面的haarcascades文件夹里面包含了所有的OpenCV的人脸检测的XML文件,这些文件可以用于检测静态,视频文件,摄像头视频流中的人脸,找到haarcascades文件夹后,复制里面的XML文件,在你新建的Python脚本文件目录里面建一个名为cascades的文件夹,并把复制的XML文件粘贴到新建的文件夹中一些有人脸的的图片,这个大家可以自行百度。

创建一个识别人脸的函数detect()

def detect(img):
 #函数声明了一个face_cascade的变量,该变量为CascadeClassifier的对象,用于检测人脸(frontalface)
 face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
 #进行灰度化处理
 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
 #进行实际的人脸检测,传递参数是scaleFactor和minNeighbor,分别表示人脸检测过程中每次迭代时图像的压缩率和每个人脸矩形保留近邻数目的最小值
 faces = face_cascade.detectMultiScale(gray,1.3,5)
 for (x,y,w,h) in faces:
 #依次提取faces变量中的值来画矩形
 img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,255),2)
 cv2.imshow('face_track',img)
 #避免图形窗口关闭
 cv2.waitKey(0)

上面就是主要的函数,当然你也可以不用函数,直接写在while循环里面,下面是完整的程序代码

import cv2

filename = cv2.imread('face_2.jpg')

def detect(img):
 face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
 faces = face_cascade.detectMultiScale(gray,1.3,5)
 for (x,y,w,h) in faces:
 img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,255),2)
 cv2.imshow('face_track',img)
 cv2.waitKey(0)

if __name__ == "__main__":
 detect(filename)

运行结果

基于python3 OpenCV3实现静态图片人脸识别

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中xrange和range的区别
May 13 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
django输出html内容的实例
May 27 Python
Django安装配置mysql的方法步骤
Oct 15 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 Python
如何通过命令行进入python
Jul 06 Python
matplotlib savefig 保存图片大小的实例
May 24 #Python
python3连接MySQL数据库实例详解
May 24 #Python
python实现图片文件批量重命名
Mar 23 #Python
python使用RNN实现文本分类
May 24 #Python
Jupyter notebook远程访问服务器的方法
May 24 #Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 #Python
解决python matplotlib imshow无法显示的问题
May 24 #Python
You might like
php学习之流程控制实现代码
2011/06/09 PHP
php通过session防url攻击方法
2014/12/10 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python实现linux下使用xcopy的方法
2015/06/28 Python
python如何绘制疫情图
2020/09/16 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
《愚公移山》教学反思
2014/02/20 职场文书
教师新年寄语
2014/04/03 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
党员创先争优活动总结
2014/05/04 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
2021/05/30 Javascript