基于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进阶教程之词典、字典、dict
Aug 29 Python
pygame实现弹力球及其变速效果
Jul 03 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
3分钟学会一个Python小技巧
Nov 23 Python
django模板结构优化的方法
Feb 28 Python
如何通过Django使用本地css/js文件
Jan 20 Python
python实现随机加减法生成器
Feb 24 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python入门之后再看点什么好?
2018/03/05 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
浅析PEP572: 海象运算符
2019/10/15 Python
基于Django统计博客文章阅读量
2019/10/29 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
求职自荐信的格式
2014/04/07 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
2015国庆节宣传语
2015/07/14 职场文书
小学毕业教师寄语
2019/06/21 职场文书