百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

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

off999 2024-10-20 08:09 47 浏览 0 评论

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

识别图片中的人脸位置

#人脸识别分类器路径
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 cv
import numpy
from 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()

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

相关推荐

苹果强制恢复出厂设置(苹果强制恢复出厂设置密码忘记了)
  • 苹果强制恢复出厂设置(苹果强制恢复出厂设置密码忘记了)
  • 苹果强制恢复出厂设置(苹果强制恢复出厂设置密码忘记了)
  • 苹果强制恢复出厂设置(苹果强制恢复出厂设置密码忘记了)
  • 苹果强制恢复出厂设置(苹果强制恢复出厂设置密码忘记了)
win7补丁目录(windows补丁目录)
  • win7补丁目录(windows补丁目录)
  • win7补丁目录(windows补丁目录)
  • win7补丁目录(windows补丁目录)
  • win7补丁目录(windows补丁目录)
联想显示器售后服务电话(lenovo人工客服24小时)

联想显示器保修期限在1~2年之内,一,联想“三包”服务承诺联想按国家有关部门颁布的《微型计算机商品修理更换退货责任规定》(以下称“三包”规定)中的内容和范围,向用户提供“三包”服务。联想承担法定“...

xp系统界面(xp系统界面无图形选项)
  • xp系统界面(xp系统界面无图形选项)
  • xp系统界面(xp系统界面无图形选项)
  • xp系统界面(xp系统界面无图形选项)
  • xp系统界面(xp系统界面无图形选项)
ipad密码忘了怎么办最简单的方法

一般ipad开机密码忘了有以下这种方法可以试一下:操作步骤/方法 1.下载最新版的iTunes。2.通过数据线将ipad与电脑iTunes相连接。3.将ipad按住电源键关机。4.同时按住电...

戴尔官翻机官网(戴尔官翻机购买地址)

肯定可以购买啊,价格还便宜。如果是官翻机应该是可以的,不像市场上的私人翻新机,这个质量应该有保障的可以买的。就是官方翻新机,市场上是有的。具体进入渠道先不管。反正市面上是肯定有的。但是这类手机是享受苹...

手机系统在哪里找(手机系统需要更新吗)

设置方法如下:1、首先输入锁屏密码,进入桌面;2、打开【设置】进入系统设置中心,打开【应用市场】即可查找应用程序;3、进入设置中心的【更多设置】,找到【开发者选项】;4、打开【开启开发者选项...

电脑城装机系统在哪里下载(电脑城都用什么装系统)

其实所有系统基本都一致,装机版已经集成一些必要软件,有个别也许还做了优化,但相对而言,在安全性和兼容性上差一些。不是绝对的,因为装机版也分好多种。纯净版最好,系统干净,使用放心。一般的电脑维修店都能够...

win7右键没有个性化(win7系统右键没有个性化)
win7右键没有个性化(win7系统右键没有个性化)

如果电脑右键没有出现个性化和属性选项,可能是系统出现了错误或者个人设置问题。解决方法如下:首先检查计算机中是否安装有系统文件,如果文件丢失或被删除,则需要重新安装系统文件;其次,可以尝试恢复系统默认配置,去掉不必要的自定义设置;最后,如果上...

2025-12-25 08:03 off999

ie11官方下载(ie11官方免费下载)

1/9点击左下窗户小图标。2/9点击齿轮设置图标。3/9点击【应用】。4/9点击【应用和功能】。5/9点击【程序和功能】6/9点击【启动或关闭windows功能】。7/9ie11没有勾选。8/9点击勾...

东芝笔记本怎么进入bios(东芝笔记本怎么进入语言界面)

以下是一些通用的方法:1.重启或开机时,按下F2键进入BIOS设置界面。在某些笔记本上,您需要按住Fn键才能按F2键。2.重启或开机时,同时按下Ctrl+Alt+Del键,然后立即按F2键...

window10家庭版下载(window10家庭版下载地址)

家庭版用户可通过以下步骤下载AutoCAD2020:访问Autodesk官方网站(autodesk.com)并创建或登录您的Autodesk帐户。导航到AutoCAD2020...

超级吞噬系统txt(超级吞噬系统txt完整版下载)

男主从未推倒柳儿,一直把柳儿当妹妹,出去历练升级从未带着她,后面男主把她安置好后,作者就再没写过她。两人一直分开。吞噬星空的九大超级势力有六大巅峰种族,人族,虫族,机械族,妖族,晶族,狱族,还有另外三...

dos如何格式化硬盘并分区(怎么在dos下格式化分区工具)

1、方式一:在“开始”搜索框汇总输入“cmd”并回车,2、方式二:单击“开始”——所有程序——附件——命令提示符,3、查看分区数:在DOS界面下输入“wmicdiskdrivegetpartit...

vivo系统升级最新版本(vivo系统升级到什么版本了)

您可以按照以下步骤来更新vivoY5s的操作系统:1.进入设置-系统更新。2.点击“检查更新”,确保您的手机已经连接上WiFi并检测到有可用的更新。3.如果有可用的更新,请按照提示下载并安...

取消回复欢迎 发表评论: