位置: IT常识 - 正文

Python人脸识别

编辑:rootadmin
Python人脸识别

推荐整理分享Python人脸识别,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

#头文件:

import cv2 as cv

import numpy as np

import os

from PIL import Image

import xlsxwriter

import psutil

import time

#人脸录入

def get_image_name(name):

name_map = {f.split('.')[1]:int(f.split('.')[0]) for f in os.listdir("./picture")}

if not name_map:

name_number = 1

elif name in name_map:

name_number = name_map[name]

else:

name_number = max(name_map.values()) + 1

return './picture/' + str(name_number) + "." + name + '.jpg'

def save_face(faces,img,name):

if len(faces) == 0:

print("没有检测到人脸,请调整")

return

if len(faces) >1:

print("检测到多个人脸")

return

x,y,w,h = faces[0]

cv.imwrite(get_image_name(name),img[y:y+h,x:x+w])

print("录上了")

def img_extract_faces(img):

gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

face_classifier = cv.CascadeClassifier('./haarcascade_frontalface_alt2.xml')

return face_classifier.detectMultiScale(gray, 1.1, 5), gray

def main():

cap = cv.VideoCapture(0)

if not cap.isOpened():

print('连接失败')

name = input("what is your name? ")

while True:

ret, frame = cap.read()

if not ret:

print("读帧失败")

break

#检测并提取人脸信息

faces, gray = img_extract_faces(frame)

for x, y, w, h in faces:

cv.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), thickness=2)

cv.imshow("还好我拼命护住了脸,英俊的相貌才得以保存", frame)

k = cv.waitKey(1)

if k == ord('s'):

save_face(faces, gray, name)

elif k == ord('q'):

break

Python人脸识别

cap.release()

cv.destroyAllWindows()

main()

#训练数据

faces_list = []

labels = []

def main():

for f in os.listdir('./picture'):

img = cv.imread(os.path.join('./picture',f), 0)

face_classifier = cv.CascadeClassifier(r'E:\Users\liufugui\PycharmProjects\pythonProject4\venv\Lib\site-packages\cv2\data\haarcascade_frontalface_alt2.xml')

faces = face_classifier.detectMultiScale(img)

if len(faces) == 0:

continue

x, y, w, h = faces[0]

faces_list.append(img[y:y+h, x:x+w])

labels.append(int(f.split('.')[0]))

recognizer = cv.face.LBPHFaceRecognizer_create()

recognizer.train(faces_list, np.array(labels))

recognizer.write('train.yml')

main()

#人脸识别

def main():

cap = cv.VideoCapture(0)

if not cap.isOpened():

print('连接失败')

name_map = {int(f.split('.')[0]) : f.split('.')[1] for f in os.listdir("./picture")}

while True:

ret, frame = cap.read()

if not ret:

print("读帧失败")

break

gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

recognizer = cv.face.LBPHFaceRecognizer_create()

recognizer.read('train.yml')

face_classifier = cv.CascadeClassifier('./haarcascade_frontalface_alt2.xml')

faces = face_classifier.detectMultiScale(gray)

for (x, y, w, h) in faces:

img_id, confidence = recognizer.predict(gray[y:y + h, x:x + w])

if confidence > 75:

name = '未识别'

else:

name = name_map[img_id]

cv.putText(

img=frame, org=(x, y), text=name,

fontFace=cv.FONT_HERSHEY_SIMPLEX, fontScale=0.75, color=(0, 255, 0), thickness=1

)

cv.circle(

img=frame, center=(x + w // 2, y + h // 2), radius=w//2,

color=(255, 0, 0), thickness=1

)

cv.imshow("还好我拼命护住了脸,英俊的相貌才得以保存", frame)

if cv.waitKey(1) == ord('q'):

break

cap.release()

cv.destroyAllWindows()

main()

本文链接地址:https://www.jiuchutong.com/zhishi/297754.html 转载请保留说明!

上一篇:vue2配置cesium详细教程(vue2 mixin)

下一篇:Vue 组件强制刷新方式(vue组件强制刷新)

  • 增值税需要年度报税吗
  • 一般纳税人预缴税款几个点
  • 房产税的纳税义务人是房屋的产权所有人
  • 新政府会计制度衔接预算会计需做好的账目清理工作有
  • 未收回的货款是企业资产吗
  • 企业购置房产进项被折旧怎么处理
  • 过桥过路费为什么这么贵
  • 定额发票验旧后怎么报税
  • 餐饮行业液化气使用标准
  • 土地前期开发费用计征契税
  • 验资帐户
  • 企业发生的现金折扣应计入
  • 企业所得税收入是什么意思
  • 小规模红字发票怎么做账务处理
  • 个人开劳务发票要同时交个税吗?
  • 季度所得税预缴可以弥补以前年度亏损吗
  • 工资五险一金和税怎么处理
  • 生育津贴做账法会计准则
  • 全国增值税发票查询平台 手机版
  • 员工报销费用
  • 跨期间收入如何确定当期收入
  • 做买卖交税
  • 收到预付款是否确认收入
  • win10怎么恢复被系统删除的文件
  • mac系统怎么玩游戏
  • 耳机插在电脑上有滋滋的声音
  • 多计提的增值税和附加税怎么冲减?
  • 电脑安全模式有声音吗
  • win10怎么样禁止电脑运行某个程序
  • php数组函数输出《咏雪》里有多少"片"字
  • 房地产会计工资一般多少
  • uniapp全局对象
  • babylon.exe进程有什么作用 babylon进程是什么文件
  • Create OpenAI Account的教程来啦,赶紧学习吧!
  • Javan tree frogs sitting together on a stalk in Indonesia (© SnapRapid/Offset by Shutterstock)
  • 股东个人消费如何合理报销
  • thinkphp连接查询少数据
  • 300秒带你手写一首诗
  • 用于应酬用的烟有哪些
  • 新租赁准则下的会计分录
  • mysql中事务的作用
  • 长期待摊费用是什么意思
  • 硬盘录像机开发票属于哪一类
  • 企业固定资产内部控制审计研究论文
  • 弥补亏损怎么做分录
  • 可供出售金融资产是流动资产吗
  • 加盟费明细
  • 购买东西进项税额怎么算
  • 长期股权投资成本法转权益法例题
  • 股东退股取现怎么处理
  • 开出地税发票(工程款)怎么做账?
  • 突然收到财付通转出的钱
  • 手工账本应付账款怎么做
  • 账上的进项税额比申报多了怎么调账
  • 通行费电子发票抵扣填写到附表二的第几栏次
  • 印花税税款所属期怎么填
  • 公益救济性捐赠应计入的会计科目是
  • 盈余公积的构成
  • mysql数据查询语句
  • window7临时文件
  • Win10系统任务栏一直转圈
  • windows2008 2016
  • mac怎么自动清理垃圾软件
  • centos7 eth
  • xp系统几位操作系统
  • win7系统笔记本怎么连接wifi
  • win10注册不了账号
  • Linux服务器端口状态
  • 天气8.2.0.308版本
  • cocos3.0
  • 在一个android创建一个按钮多选对话框
  • 安卓自定义ui
  • 基于javascript的毕业设计选题
  • 手机糖果游戏娱乐
  • js代码怎么使用
  • 安卓样式大全
  • 北京市网上税务局(自然人版)
  • 低保大数据核查哪些数据
  • 党建阵地作用发挥不好
  • 深圳12366接听客服工作怎么样
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设