基于python3 OpenCV3实现静态图片人脸识别
作者:胖子大叔 发布时间:2022-10-04 20:59:30
标签:python,OpenCV3,人脸识别
本文采用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)
运行结果
来源:https://blog.csdn.net/KimLK/article/details/78503442


猜你喜欢
- 这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jw
- scipy.interpolate插值方法1 一维插值from scipy.interpolate import interp1d1维插值算
- 在mysql中利用select语句的一个特性就可以很方便地实现查询结果的分页,select语句的语法:SELECT [STRAIGHT_JO
- 一些大型站点都有着非常一流的视觉外观,它们很可能在设计时使用了网格系统。网格可以是页面布局显得紧凑而且稳定,为设计师在设计站点时提供一个逻辑
- 以下函数采用FSO对象,文件位置在FSO.ASP。FSO对象的文件编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的ut
- 前言Python环境的搭建这里就不赘述了,有需要的小伙伴可以在网上搜罗出很多教程,注意安装PyChom编辑工具。这次我们主要讲一下几点内容:
- 分组条形图拓展一下问题复杂度:使用水平条形图展示每位员工前三个月的销售额。此时,我们需要将每位员工的销售额按月分组,分别绘制条形图进行展示。
- 一.脚本基础 1.USE语句 &n
- 如何制作一个小巧的购物车?主程序如下:cartkit.aspClass CartKitSub CreateCart()&
- 如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做?在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成
- 使用xmlhttp中的getResponseHeader 从响应信息中获取指定的http头strValue = oXML
- 导语之前有很多小伙伴说想学习一下多线程图片下载器,虽然好像已经过去很久了,不过还是上来安排一波吧。至于题目为什么说是构建一个小型数据集,因为
- 模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和 Python 语句模
- 如下所示:>> type(np.newaxis)NoneType>> np.newaxis == NoneTruen
- 谈及鼠标事件,就是在触发鼠标按钮后程序所做出相应的反应,但是不影响程序的整个线程。这有些像异步处理。鼠标事件响应不会一直等着我们去按而后续程
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下# teris.py# A module for game
- requests是一个python 轻量的http客户端库,相比python的标准库要优雅很多。接下来通过本文给大家介绍Python3使用r
- 一、用HTTP头信息 也就是用PHP的HEADER函数。PHP里的HEADER函数的作用就是向浏览器发出由HTTP协议规定的本来应该通过WE
- 自己用python写了一个签到脚本,经过测试已经可以成功打卡,于是研究了一下windows定时运行程序1. 创建定时任务1.1 计划任务打开
- 引言这两天在做微服务上云的事,之前一直是本地运行,后来在服务器搭建了生产环境集群。上云时出现了一些幺蛾子云上的服务都需要身份验证的,没有专用