位置: 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组件强制刷新)

  • 个人所得税年度汇算清缴怎么操作
  • 领用工程物资的账务处理
  • 计提本月增值税会计科目
  • 合伙企业交企业所得税还是个人所得税
  • 车辆购置税的税率是多少
  • 增值税怎么记
  • 生产成本怎么计算
  • 可供出售金融资产会计处理
  • 金蝶怎么增加凭证行数
  • 纳税申报表销售额可以是负数吗
  • 存货盘盈涉税问题
  • 汽车按揭费用收合法吗?
  • 政府电费补贴文件
  • 政府补助收入总额等于
  • 大型设备间距应至少大于几米
  • 购买烟怎么做账
  • 坏账准备核销和转销的区别
  • 劳务挂靠需要开票吗
  • 现金流量表的编制依据
  • 本月做账下月认证的进项怎么做账?
  • win7免费升级
  • 电脑找不到ie浏览器
  • windows11怎么操作
  • 发放职工工资计入什么会计科目
  • macos big sur值得升级吗
  • uniapp支付流程
  • PHP:imagefilledrectangle()的用法_GD库图像处理函数
  • 迭代器,生成器
  • 报销加油票怎么开票
  • vue显示pdf
  • 城市维护建设税减免税优惠政策
  • 税款入库期是什么意思
  • 深度计算公式
  • 印花税减半征收减免性质代码
  • 售后租回租金怎么做账
  • 公司的银行账号是不是和个人账号不一样
  • python tkinter entry用法
  • 一个简单的后台与数据库交互的登录与注册[sql注入处理、以及MD5加密]
  • SQL server 2008安装程序遇到以下错误 sku
  • mysql基本sql语句大全(基础用语篇)
  • 出口货物申报表如何填写
  • 企业所得税的扣除是什么意思
  • 小规模纳税人是什么意思
  • 收到的稳岗补贴是否需要交税
  • 应付职工薪酬如何结转
  • 固定资产溢余账务处理
  • 购买银行承兑汇票贴现诈骗
  • 收到红字发票账务处理应附哪些资料呢
  • 私人借款条怎么写合法
  • 低值易耗品和物料用品的区别
  • 买车的车
  • 退回的个税手续费如何账务处理
  • 法人借给公司钱怎么写情况说明
  • 销售费用可以提现吗
  • 开票需要缴纳印花税吗
  • 印花税计提依据业务发生时间还是开票时间?
  • 发票认证申报期是什么时候
  • 母公司划拨土地给全资子公司需要上税吗?
  • 酒店的经济性质是什么
  • mysql的随机函数
  • mysql查询表语句
  • win8系统蓝屏后无法修复
  • Mac系统怎么设置ftp
  • win10系统运行速度慢
  • rosnmgr.exe - rosnmgr是什么进程 有什么用
  • kpg是什么文件
  • win8如何进入bios
  • win10禁止显卡驱动自动安装
  • linux终端怎么用
  • Linux+Apache+PHP+MySQL+Zend Optimizer+PHPMyAdmin
  • bootstrap table sum总数量统计实现方法
  • store与storage的区别
  • Theme.AppCompat.Light的问题
  • 自动监测和在线监测一样吗
  • W3C Group的JavaScript1.8 新特性介绍
  • 安卓抓包apk
  • 财税公司销售工作好做么
  • 税控盘清卡的步骤
  • 租房税多少钱
  • 电子税务网上申报平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设