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,一经查实,立即删除!

相关文章

dotnet 通过引用 msbuild 程序集实现自己定制编译器

本来我想说的是基于引用 msbuild 程序集来自己做一个编译器,但是想想好像本文做的,和造编译器没啥关系,咱自己调用 msbuild 的 API 而已。本文来告诉大家如何引用 msbuild 程序集,如何在自己的应用程序里面嵌入 msbuild 的构建代码…

通过修改注册表设定浏览器的却省值

安装NetScape后,点击*.htm文件,却是用NetScape打开的,有时候感觉不爽,怎样才能将浏览器的却省打开设定为IE呢?通过修改注册表的方法可以解决:保存如下内容为IEChn.reg,运行即可。REGEDIT4[HKEY_…

[转贴]犯贱报(一张浓缩大学生活的..)

1 学校门口总是有一些骗子, 有的开着车, 有的没有开车。 没有开车的, 骗骗我们的钱, 开着车的, 骗骗我们的人。 2 有一天, 校门口来了一名物理爱好者, 认为自己推翻了相对论。 我们去探讨请教&…

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

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

dns的子域授权

主服务器配置:1.在/var/named/neo.zone里添加如下数据...前面省略... SOA部分序号加大,其余不变dep1.neo.com. IN NS dns.dep1.neo.com.dns.dep1.neo.com. IN A 10.3.156.45从服务器配置:1.修改/etc/named.rfc1912.zones,假设文件…

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

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

I want go to school

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

.NET 6 Preview 6 正式发布: 关注网络开发

微软.NET 团队的项目经理在博客上发布了.NET 6 Preview 6, 在候选发布阶段之前的倒数第二个预览版,也就是8月份还会发布一个Preview 7,9月份开始进入RC,两个候选版本将专注于质量修复,直到 11 月的最终版本。Preview 6 版本本身相…

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

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

程序员的发展和境界

评论:在IT社区看到这篇文章,觉得挺有意思,挺激励人的,所以引用来大家交流,只要能不断付出和努力,总是有收获的,这样对自身和企业的持续发展都是很有利的!原文:程序员的四…

ASP.NET MVC 上传大文件时404

前一段时间会员的上传组件改用FLASH的swfupload来上传,既能很友好的显示上传进度,又能完全满足大文件的上传。 后来服务器升级到windows 2008,改为IIS7后,上传文件一旦超过30M时,就出现404错误,而且是是上传进度达到10…

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

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

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

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

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

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

c#设计模式(转)

http://terrylee.cnblogs.com/archive/2006/06/01/334911.html转载于:https://www.cnblogs.com/niuniu502/archive/2007/08/17/859032.html

好资源大家分享

500 本E书下载 http://forum.blogchina.com/38652.htmlMSN7发布: http://dl.pconline.com.cn/html/1/1/dlid2461&dltypeid1&pn0&.html

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 控件 扩展 /// &…

mysql 1117_1117Mysql prepare预处理语句

转自http://www.jb51.net/article/81378.htm综述&#xff1a;一般用来拼凑SQL然后执行MySQL 5.1对服务器一方的预制语句提供支持。如果您使用合适的客户端编程界面&#xff0c;则这种支持可以发挥在MySQL 4.1中实施的高效客户端/服务器二进制协议的优势。候选界面包括MySQL C A…