基于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调用命令行进度条的方法
May 05 Python
Python中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
Python标准库之collections包的使用教程
Apr 27 Python
详解Python3.6安装psutil模块和功能简介
May 30 Python
浅谈python之新式类
Aug 12 Python
Django中使用Celery的方法示例
Nov 29 Python
解决python tkinter界面卡死的问题
Jul 17 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 Python
基于Python正确读取资源文件
Sep 14 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
2021年最新用于图像处理的Python库总结
Jun 15 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
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
php字符串函数学习之substr()
2015/03/27 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
javascript 表单验证常见正则
2009/09/28 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
2015/09/18 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
python字符串替换的2种方法
2014/11/30 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
使用python模拟高斯分布例子
2019/12/09 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
Python学习笔记之装饰器
2020/08/06 Python
Python join()函数原理及使用方法
2020/11/14 Python
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
个人工作表现评语
2014/04/30 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
张丽莉观后感
2015/06/16 职场文书
高二化学教学反思
2016/02/22 职场文书