基于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中的__init__和__new__
Mar 12 Python
python操作ssh实现服务器日志下载的方法
Jun 03 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
使用Python对MySQL数据操作
Apr 06 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
java中两个byte数组实现合并的示例
May 09 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 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
咖啡常见的种类
2021/03/03 新手入门
C# Assembly类访问程序集信息
2009/06/13 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
nodejs教程之环境安装及运行
2014/11/21 NodeJs
原生js页面滚动延迟加载图片
2015/12/20 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
100行代码实现一个vue分页组功能
2018/11/06 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
python网络编程之文件下载实例分析
2015/05/20 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
基于Django用户认证系统详解
2018/02/21 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
2014年销售工作总结范文
2014/12/01 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
加强党性修养心得体会
2016/01/21 职场文书
区域销售大会开幕词
2016/03/04 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
比较几种Redis集群方案
2021/06/21 Redis
Python+Tkinter打造签名设计工具
2022/04/01 Python