python实现人脸识别_python人脸识别代码实现丨内附代码

9ec49ed7766f2f58159e97e131432b8c.gif

Python在人脸识别方面功能很强大,程序语言简单高效,下面小编来编程实现一下如何实现人脸识别。如有错点,还望斧正

4baa88e49cf3cb9ff4190d93961a2bb2.png

识别图片中的人脸位置

#人脸识别分类器路径
tool_url = r'C:\Users\86188\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'
#人脸定位函数
def face_detect(img):
gray = cv.cvtColor(img,cv.COLOR_BGRA2BGR)
face = cv.CascadeClassifier(tool_url)
#将图片转化为灰度图
faces = face.detectMultiScale(gray)
#确定人脸部分
for x,y,w,h in faces:
reg = cv.rectangle(img, (x, y),( x + w, y + h), color=(0, 255, 0), thickness=2)
cv.imshow("reg",reg)

根据训练集训练数据并保存(dataTraining.py)

import os
import cv2 as cvimport numpyfrom PIL import Image'''
训练数据来自s2和s9
'''
def getImageAndIds(path):
facesSimples = [] ids = [] img_paths = [os.path.join(path,f) for f in os.listdir(path)]
#检测人脸 tool_url = r'C:\Users\86188\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'
# 调用插件获取图像特征 face = cv.CascadeClassifier(tool_url) for i in img_paths:
# print(i)
img = Image.open(i).convert("L")
# Image._show(img) #将图片转换为数组 img_np = numpy.array(img,'uint8')
# print(img_np)
# 获取图像的人脸信息和对应id faces = face.detectMultiScale(img_np) id = int(i.split(path)[1].split('.')[0])
for x, y, w, h in faces:
facesSimples.append(img_np[y:y+h,x:x+w]) ids.append(id) return facesSimples,ids
if __name__ == "__main__":
#图片路径 path = "./data/"
faces,ids = getImageAndIds(path)
#获取循环对象 reg = cv.face.LBPHFaceRecognizer_create() reg.train(faces,numpy.array(ids)) #保存文件 reg.write("trainer/trainer.yml")

人脸识别(faceChecking.py)

import cv2 as cv
import os,numpy
#检测人脸tool_url = r'C:\Users\86188\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'
#图片数据路径path = './data/'
# 调用插件获取图像特征face = cv.CascadeClassifier(tool_url)#加载训练数据reg = cv.face.LBPHFaceRecognizer_create()reg.read("trainer/trainer.yml")
img= cv.imread("3.jpg")
#将图像的人脸特征圈出来gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)faces = face.detectMultiScale(gray)for x, y, w, h in faces:
# print(x,y,w,h)
cv.rectangle(gray, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
#检测出识别后的图片和id id,configence = reg.predict(gray[y:y+h,x:x+w]) #显示对应图片 print("编号:{},置信度:{}".format(id,configence))
aim_img = cv.imread(os.path.join(path,str(id)+'.jpg'))
#显示目标图片 cv.imshow("aim_img",aim_img)
cv.imshow("result",gray)
cv.waitKey(0)
cv.destroyAllWindows()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大牛逝世 = 新人上位 = 科学进步?新研究表明确实如此

全世界只有3.14 % 的人关注了青少年数学之旅学术大牛们生前为人类创造了巨大的知识财富,死后也以另一种形式造福了科学。一项新研究表明,明星科学家去世后,同一学科分区中从未与他们合作的科学家论文发表数量提升 8.6%,其他领域的…

扩展mysql_扩展mysql - 手把手教你写udf

1 MySQL简介MySQL是最流行的开放源码SQL数据库管理系统,相对于Oracle,DB2等大型数据库系统,MySQL由于其开源性、易用性、稳定性等特点,受到个人使用者、中小型企业甚至一些大型企业的广泛欢迎,MySQL具有以下特点&#…

I want go to school

那天,村里来了英语老师,她教我们说了第一句英语:“I want go to school.” 你听到了吗?那是最震撼的呐喊!

这些肢体语言竟然是这个意思! | 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅(图源网络,侵权删)

下午去银行办理按揭手续,不得已调休半天

可恶的银行非得在工作日才办理按揭手续,不是人民的银行为人民吗?既然存款利率要降,以后还打算收取存款费用,那银行就是[或者打算是]地道的服务行业,周末对公业务不开就算了,个人按揭也闭门,没有…

Scott Hanselman 喊你来看看最新的极简APII

近日,Scott Hanselman 在社交网络上发布了 .NET 的最新消息:现代的 C# 特性和 ASP.NET Core 中新的极简 API 正在 .NET 6 中开始出现。你可以在 DamianEdwards 的仓库中看到一些示例,并与团队分享你的想法! (点击原文链接查看仓库…

全球孩子迷恋手机/iPad,其实罪魁祸首是父母!

全世界只有3.14 % 的人关注了青少年数学之旅我从来没有想过,现在孩子的童年会是这样子的。他们手上捧着的不是书籍,而是小手掌都握不过来的手机、iPad;他们嘴上谈论的不是作业,而是许多成年人都搞不懂的王者和吃鸡。很多父母说&am…

oracle vm 安装虚拟机小bug

2019独角兽企业重金招聘Python工程师标准>>> 如果是iso文件是64位, 那么在创建虚拟电脑时选择的系统就是window7 x64。否则报错:0000225错误. 转载于:https://my.oschina.net/u/1174884/blog/175596

庄表伟:License之外,社区的规则与潜规则 | DEV. Together 2021 中国开发者生态峰会...

内容来源:2021 年 6 月 5 日,由 SegmentFault 思否主办的 2021 中国开发者生态峰会圆满落幕。会上,华为云产品专家、开源社理事长庄表伟发表了主题为《License之外,社区的规则与潜规则》的演讲。分享嘉宾:庄表伟&#…

GridView 简单扩展

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Text;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceFanfajin.MyWebControls{ /**//// <summary> /// 增强的 GridView 控件 扩展 /// &…

为了偷吃东西你能有多拼?! | 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源网络&#xff0c;侵权删&#xff09;

Nacos真香,从零到一学起来

Nacos是阿里巴巴开源的微服务管理平台&#xff0c;可以帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。这篇文章主要来讲一下Nacos作为配置中心和注册中心的使用。1 安装 1.1 linux下安装首先搭建一套单机版的Nacos集群。Nacos的安装有两种方式&#xff0c;…

自律的程度,决定你人生的高度

全世界只有3.14 % 的人关注了青少年数学之旅对于不少用户来说&#xff0c;微信已经成为了获取新资讯的重要途径之一。如何保证自己找到「值得看」的内容&#xff1f;每天更新的文章这么多&#xff0c;哪些才值得你看呢&#xff1f;今天就为大家推荐一些颜值与才华并存的好评公众…

标准MD5 .Net,实现!的对与错!

关键之处在,从byte到字符串的处理下面是一个错误的实现! /**//// <summary> /// 返回32位md5十六进制加密 /// </summary> /// <param name"strValue">待加密的字符串</param> /// <returns></return…

[导入]Asp.net中动态在中加入Scrpit标签

许久以前&#xff0c;写过一篇《asp.net页中动态加入样式表文件》&#xff0c;后来发现在使用时如果每页都写这么个函数真是很麻烦&#xff0c;于是自己写了一个Page的派生。将这个函数加了进去。/**////<summary>///作者 邹健 ///日期 20070202 ///重载的Page类。…

android 多布局

做为最后的方法&#xff0c;也是最后一个才会考虑的方法&#xff0c;那就是为不同的尺寸界面单独写布局。不到万不得已不要用这个方法&#xff0c;相信不少人和我一样都被逼着用过这个方法吧。需要说明的是&#xff0c;横竖屏切换使用不同布局也是用这个方法解决的&#xff1b;…

万万想不到:吸烟的辐射量比原子弹爆炸点还厉害!

全世界只有3.14 %的人关注了青少年数学之旅近日&#xff0c;外国视频网站上一段关于世界上辐射最高地点的短片火了起来。片中&#xff0c;一位外国小哥亲身探秘了那些广为人知的辐射地点如切尔诺贝利、福岛核电站等&#xff0c;并且给出了究竟哪里的辐射最高的结论。什么是辐射…

视频专辑:Hibernate 视频

为什么80%的码农都做不了架构师&#xff1f;>>> 专辑&#xff1a;Hibernate 视频 简介:郭宏志 Hibernate从入门到深入,郭宏志气主讲 1 郭宏志 Hibernate 01 简介 2013-10-29 13:50 | 播放(11) | 评论(0) | 时长:1:17:58 2 郭宏志 Hibernate 02 配置 2013-10-29…

人体的血管连起来竟能绕地球两圈!?| 今日最佳

世界只有3.14 % 的人关注了青少年数学之旅你知道怎么回复吗&#xff1f;这五花肉真。。白啊来自唐代的敦煌文书。。。《放妻书》好像发现了点什么不可告人的秘密如果人体的血管首尾相连总长度约为96560.64千米大概可以绕地球2.5圈密集恐惧症表示已经qu世了&#xff08;图源网络…

云原生系统之弹性模式

大纲1.云原生系统的弹性模式resiliency pattern 1.1 服务故障的雪崩效应 1.2 回应之前云原生--弹性请求的疑问&#xff1f;2. 弹性模式&#xff1a;作用在下游请求消息上3. 短期中断的响应码4. Polly经典策略5. Golang 断路器模式德国哲学家尼采说过&#xff1a;那些杀…