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

  • 生产经营所得个人所得税怎么申报
  • 涉及免所得税及减半所得税的业务如何做账
  • 附加税减免税额不能大于本期应纳税额怎么办
  • 免租期房租怎么做会计分录
  • 房产公司售楼部装修费入什么会计科目
  • 资金账簿减半征收印花税财税2018 50号
  • 经营所得税投资者减除费用
  • 办公室空调维修报告
  • 原材料预付款如何做账
  • 母公司为子公司担保是利好还是利空
  • 坏账损失的核算方法一般有两种
  • 增值税不允许抵扣的27种情况
  • 取得的接受捐赠怎么做账
  • 固定资产处理怎么记账
  • 企业购买用于绿化的土地
  • 企业生产设备产品有哪些
  • 主体资格的法律规定
  • 住宅租给公司办什么手续
  • 企业所得税审计的内容包括哪四个方面
  • 个人房屋租赁税率2023年
  • 劳务派遣公司怎么赚钱
  • 开票的时候确认收入吗
  • 公司间借款计入什么科目
  • 一般纳税人减免税款的会计分录
  • 事业单位固定资产
  • 超市买的东西开什么发票
  • 生产成本属于什么会计要素
  • 企业私募股权投资
  • 电脑删文件需要授权
  • 劳务分包费用组成比例
  • 鸿蒙系统怎么去掉负一屏
  • 资本溢价是
  • 工行对公贷款利息扣款时间是几点
  • php unicode
  • 上市公司回购股票意味着什么
  • web后端开发框架有哪些
  • 低代码框架开发
  • javaweb购物车设计报告
  • 蓝桥杯第十四届模拟赛第三期
  • ntpd命令详解
  • 股东分红会计分录案例
  • 售后租回怎么理解
  • 置顶文章
  • 每个公司都要交房产税吗
  • 员工离职后个税申报系统如何操作
  • mysql从一张表更新到另一张表
  • 固定资产折旧的账务处理
  • 物流进项发票应纳税额
  • 如何设置长期有效的二维码
  • 股份支付属于应付职工薪酬吗?
  • mysql 索性
  • 水电费计提是什么意思
  • 发生销售退回账务处理
  • 投资性房地产转换计入其他综合收益
  • 增值税加计抵扣账务处理
  • 税法对企业费用的限定
  • 国税局个人所得税怎么申报
  • 税控维护费减免税款
  • 向非金融企业借款会计分录
  • 营业成本包括三大费用如何称呼
  • 企业租用农村土地
  • case在sql中
  • 回顾30年的水文模型参数率定研究
  • windows7更新80072efe
  • mac电脑快速查询
  • vssvc.exe
  • fragment懒加载原理
  • eclipse cocos2dx Command line too long
  • vue-resource + json-server模拟数据的方法
  • django 自定义权限管理
  • 用js实现导航栏的下拉列表
  • nvm-windows
  • javascript填表
  • 详解杭州亚运会会徽和口号
  • python中time模块源代码
  • javascript构造函数可继承父类的构造函数
  • 捐赠收入如何交印花税
  • 江苏省发展改革委
  • 棚户区改造的房子和商品房有什么区别
  • 转租土地合法吗现在
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设