基于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处理XML文件的方法
Aug 31 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
Django自定义分页效果
Jun 27 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
Flask配置Cors跨域的实现
Jul 12 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
python打开使用的方法
Sep 30 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
Oct 18 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合并数组+与array_merge的区别分析
2010/08/01 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
php桥接模式应用案例分析
2019/10/23 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
2017/09/06 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
Python 合并拼接字符串的方法
2020/07/28 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
英国综合网上购物商城:The Hut
2018/07/03 全球购物
工程专业毕业生自荐信范文
2013/12/25 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
2015年汽车销售员工作总结
2015/07/24 职场文书
毕业感言怎么写
2015/07/31 职场文书
阿里云日志过滤器配置日志服务
2022/04/09 Servers