opencv动态识别人脸

import cv2
import os
import numpy as npdef take_faces():while True:key = input('请输入文件夹的名字,姓名拼音的缩写,如果输入Q,程序退出!')if key == 'Q':break# 在faces_dynamic下面创建子文件夹os.makedirs('./faces_dymamic/%s' % (key), exist_ok=True)take_photo(key)def load_data():listdir = os.listdir('./faces_dymamic')#列表生成式names = [d for d in listdir if not d.startswith('.')]faces  = []target = [i for i in range(len(names))]*10for dir in names:for i in range(1,11):gray = cv2.imread('./faces_dymamic/%s/%d.jpg'% (dir,i)) #三维图片gray_ = gray[:, :, 0] #二维数组faces.append(gray_)faces = np.asarray(faces)target = np.asarray(target)target.sort()  # 排序return faces,target,namesdef dynamic_recognizer_face(face_recognizer,names):cap = cv2.VideoCapture(0)#人脸检测face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')while True:flag,frame = cap.read()if not flag:breakgray = cv2.cvtColor(frame, code=cv2.COLOR_BGR2GRAY)faces = face_detector.detectMultiScale(gray,minNeighbors=5)for x,y,w,h in faces:face = gray[y:y + h, x:x + w]face = cv2.resize(face, dsize=(64, 64))y_,confidence = face_recognizer.predict(face)label = names[y_]print('这个人是:%s.置信度:%0.1f'%(label,confidence))cv2.rectangle(frame,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2)cv2.putText(frame,text=label,org=(x,y-10),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1.5,color=[0,0,255],thickness=2)cv2.imshow('face',frame)key = cv2.waitKey(1000//24)if key == ord('q'):breakcv2.destroyAllWindows()cap.release()if __name__ == '__main__':#2、加载数据,返回目标值faces,target,names  = load_data()#print(faces.shape,target.shape)#3、加载人脸识别算法#face_recognizer = cv2.face.EigenFaceRecognizer_create()#face_recognizer = cv2.face.FisherFaceRecognizer_create()face_recognizer = cv2.face.LBPHFaceRecognizer_create()#4、算法训练,找到目标值之间的规律face_recognizer.train(faces,target)#5、动态加载数据dynamic_recognizer_face(face_recognizer,names )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【语音识别】搭建本地的语音转文字系统:FunASR(离线不联网即可使用)

参考自: 参考配置:FunASR/runtime/docs/SDK_advanced_guide_offline_zh.md at main alibaba-damo-academy/FunASR (github.com)参考配置:FunASR/runtime/quick_start_zh.md at 861147c7308b91068ffa02724fdf74ee623a909e alibaba-damo-aca…

电脑教程1

一、介绍几个桌面上面的软件 1、火绒:主要用于电脑的安全防护和广告拦截 1.1 广告拦截 1.打开火绒软件点击安全工具 点击弹窗拦截 点击截图拦截 拦截具体的小广告 2、向日葵远程控制:可以通过这个软件进行远程协助 可以自己去了解下 这个软件不要…

模块四:一维前缀和模板——DP34 【模板】前缀和

文章目录 题目描述算法原理解法一:暴力解法(时间复杂度为O(n*q))解法二:前缀和(时间复杂度为O(n)O(q))细节问题 代码实现CJava 题目描述 题目链接:DP34 【模板】前缀和 根据描述第一句可得数组长度应设为n 1 算法原理 解法一…

编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 编写…

个人学习-前端相关(2):ECMAScript 6-箭头函数、rest、spread

ES6的箭头函数 ES6允许使用箭头函数,语法类似java中的lambda表达式 let fun1 function(){} //普通的函数声明 let fun2 ()>{} //箭头函数声明 let fun3 (x) >{return x1} let fun4 x >{return x1} //参数列表中有且只有一个参数,()可…

支持向量机(SVM)详细介绍

一、SVM基本概念 支持向量机(Support Vector Machine,简称SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。SVM的核心思想是寻找一个超平面,将不同类别的样本点分开,并且使得…

LeetCode题目74:搜索二维矩阵

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析…

kubebuilder(3)实现operator

在前面的文章我们已经了解了operator项目的基本结构。现在我们来写一点简单的代码,然后把我们的crd和operator部署到k8s集群中。 需求 这是一个真实的需求,只不过做了简化。 在开发公司自己的paas平台,有一个需求是,用户在发版…

FFMpeg - macOS build 报错 : xcrun -sdk iphoneos clang ...

文章目录 报错1:xcrun -sdk iphoneos clang is unable to create an executable file报错 2 : error: unknown type name AudioDeviceID; 在 macOS 上使用 https://github.com/kewlbear/FFmpeg-iOS-build-script 脚本,运行 ./build-ffmpeg.sh…

236基于matlab的三维比例导引法仿真

基于matlab的三维比例导引法仿真,可以攻击静止/机动目标。1.三维空间内的比例导引程序,采用龙哥库塔积分法;2.文件名为bili3dnew的.m文件是主函数,执行时需调用目标机动子函数、导引律子函数、数值积分法子函数;3.文件…

模拟LinkedList实现的双向链表

1. 前言 前文我们用java语言实现了无哨兵的单向链表.稍作修改即可实现有哨兵的单向链表.有哨兵的单向链表相较与无哨兵的而言,其对链表的头结点的增删操作更为方便.而在此我们实现了带有头节点和尾节点的双向链表(该头节点和尾节点都不存储有效的数据). 2. 带有头…

统计建模——模型——python为例

统计建模涵盖了众多数学模型和分析方法,这些模型和方法被广泛应用于数据分析、预测、推断、分类、聚类等任务中。下面列举了一些常见的统计建模方法及其具体应用方式: 目录 1.线性回归模型: ----python实现线性回归模型 -------使用NumPy…

计算机网络—网络层

一、网络层的功能 网络层的任务 主要任务是通过路由器实现网络互联,进而实现数据报在各网络之间的传输 “数据报”就是从数据链路层接收的分组好的数据,又叫“IP数据报”或“IP分组” 网络层提供的两种服务 1面向连接的虚电路服务 当两台计算机进行…

阿里云安装Mysql

阿里云安装Mysql 1、下载mysql包,并解压包2、继续解压文件3、拷贝到安装目录4、创建mysql组和用户5、创建mysql数据目录(根目录)6、赋予权限7、加入路径8、配置文件顺序:9、初始化mysql10、启动mysql(结尾加"&…

【C++】---STL容器适配器之queue

【C】---STL容器适配器之queue 一、队列1、队列的性质 二、队列类1、队列的构造2、empty()3、push()4、pop()5、size()6、front()7、back() 三、队列的模拟实现1、头文件(底层:deque)2、测试文件3、底层:list 一、队列 1、队列的…

VulnHub靶机 DC-系列合计 通关攻略手册

VulnHub靶机 DC靶机系列 通关手册 DC-1:Vulnhub靶机 DC-1 渗透详细过程 DC-2:Vulnhub靶机 DC-2 渗透详细过程 DC-3:Vulnhub 靶机 DC-3 实战系列 渗透详细过程 DC-4:VulnHub系列 DC-4靶机 渗透详细过程 DC-5:VulnH…

Java基础_集合类_List

List Collection、List接口1、继承结构2、方法 Collection实现类1、继承结构2、相关类(1)AbstractCollection(2)AbstractListAbstractSequentialList(子类) 其它接口RandomAccess【java.util】Cloneable【j…

Kafka学习笔记01【2024最新版】

一、Kafka-课程介绍 官网地址:Apache KafkaApache Kafka: A Distributed Streaming Platform.https://kafka.apache.org/ kafka 3.6.1版本,作为经典分布式订阅、发布的消息传输中间件,kafka在实时数据处理、消息队列、流处理等领域具有广泛…

【NTN 卫星通信】NTN应该使用FDD还是TDD双工模式

1 概述 现在主流的商用地面通信系统一般都支持FDD和TDD两种模式,实用于不同的频段。那么卫星通信也需要有这两种模式吗? 2 NTN 双工模式分析 在考虑TDD模式时,需要设置保护时间,以防止终端同时发射和接收。该保护时间直接取决于终…

容器安全-镜像扫描

前言 容器镜像安全是云原生应用交付安全的重要一环,对上传的容器镜像进行及时安全扫描,并基于扫描结果选择阻断应用部署,可有效降低生产环境漏洞风险。容器安全面临的风险有:镜像风险、镜像仓库风险、编排工具风险,小…