简单的签到程序 python笔记

简单的人脸识别签到程序

在看完以下代码后,略微修改一番,你就能够组装出自己的“简单的人脸识别签到程序”了。
请注意库的安装,否则会不可用。
你可以通过在cmd中使用:pip install来安装。
以下代码运行python = 3.8

UI界面

使用前安装:PySimpleGUI库

import PySimpleGUI as sg# 创建一个简单的窗口,包含一个标签和一个输入框
Layout = [[sg.Text("编号: ", size=(10, 1)), sg.InputText(key='id')],[sg.Text("姓名: ", size=(10, 1)), sg.InputText(key='name')],[sg.Text(key='msg')],[sg.Button("人脸采集"), sg.Button("关闭"),sg.Button('签到')]]
window = sg.Window("人脸识别", Layout,icon="./icon.ico")
while True:event, values = window.read()# 读取窗口事件和输入值print(event, values)if event == "人脸采集":id = values["id"]name = values["name"]window["msg"].update(f"编号: {id}, 姓名: {name}")# 更新消息框内容sg.popup("人脸采集")elif event == "签到":id = values["id"]name = values["name"]window["msg"].update(f"编号: {id}, 姓名: {name}")if id == "1" and name == "1":sg.popup("签到成功")print("签到成功")else:sg.popup("签到失败")print("签到失败")elif event == "关闭" or event == sg.WIN_CLOSED:print("退出")sg.popup_timed("退出")# 弹出提示信息break

数据库

使用前请安装好MySQL和图形化界面。

CREATE TABLE tu (user_id INT AUTO_INCREMENT PRIMARY KEY,user_name VARCHAR(255) NOT NULL,user_num INT NOT NULL
);

数据库操作

使用前安装:pymysql库

import pymysql# 数据库配置
db_config = {'host': 'localhost','user': 'root','password': '123456','port': 3306,'database': "name",'charset': 'utf8'
}# 增
def connect_mysql(name, num):con = pymysql.connect(**db_config)cur = con.cursor()sql = "insert into tu (user_name,user_num) values(%s,%s)"cur.execute(sql, (name, num))con.commit()if cur.rowcount > 0:print("数据库添加成功")else:print("数据库添加失败")cur.close()con.close()# 改
def update_mysql(name, num):con = pymysql.connect(**db_config)cur = con.cursor()sql = "UPDATE tu SET user_num = %s WHERE user_name = %s"affected_rows = cur.execute(sql, (num, name))con.commit()if affected_rows > 0:print("更新成功")else:print("更新失败或未找到对应的记录")cur.close()con.close()# 删
def delete_mysql(name):con = pymysql.connect(**db_config)cur = con.cursor()sql = "DELETE FROM tu WHERE user_name = %s"affected_rows = cur.execute(sql, (name,))con.commit()if affected_rows > 0:print("删除成功")else:print("删除失败或未找到对应的记录")cur.close()con.close()# 查
def num_to_name(user_num):con = pymysql.connect(**db_config)cur = con.cursor()sql = "SELECT user_name FROM tu WHERE user_num = %s"cur.execute(sql, (user_num,))result = cur.fetchone()cur.close()con.close()return result[0] if result else None

人脸识别

使用前安装配置好cv2(opencv-python),face_recognition,numpy

import cv2
import face_recognition
import os
import numpy as np
#开启摄像头
c = cv2.VideoCapture(0, cv2.CAP_DSHOW)
#文件路径
file_path = "D:\work\python\open\lian"while True:ret,frame = c.read()if ret:#显示图cv2.imshow("a",frame)if cv2.waitKey(20) == 27:breakif cv2.waitKey(20) == 113:# 检测人脸face_list = face_recognition.face_locations(frame)if len(face_list) > 0:print("视频检测到人脸")# 遍历目录path = os.listdir(file_path)# print(path)for i in path:#获取人脸特征img = cv2.imread(f"{file_path}\\{i}")encodings = face_recognition.face_encodings(img)if len(encodings) == 0:continueelse:en1 = face_recognition.face_encodings(img)[0]en2 = face_recognition.face_encodings(frame)[0]iss = np.linalg.norm(en1-en2)# print(iss)if iss < 0.5:print("与图像",i,"中欧几里得距离:",round(iss,2),"是同一个人")else:print("与图像",i,"欧几里得距离为 :",round(iss,2),"不是同一个人")
cv2.destroyAllWindows()

好了,现在你可以组装自己的简单的签到程序了。

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

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

相关文章

如何利用指纹浏览器爬虫绕过Cloudflare的防护?

网络爬虫能够系统地浏览网页并提取所需的数据&#xff0c;通常被用于市场研究、数据分析或者竞争情报。然而&#xff0c;一些反爬虫机制给网络爬虫的工作带来了不少挑战和风险。 其中&#xff0c;Cloudflare提供了多层次的防护机制&#xff0c;包括IP封锁、速率限制、CAPTCHA验…

数据结构-数组(稀疏矩阵转置)和广义表

目录 1、数组定义 1&#xff09;数组存储地址计算示例①行优先②列优先 2&#xff09;稀疏矩阵的转置三元组顺序表结构定义 ①普通矩阵转置②三元组顺序表转置稀疏矩阵③稀疏矩阵的快速转置 3&#xff09;十字链表结构定义 2、广义表定义 1&#xff09;基本操作①GetHead②GetT…

mysql常见的一些配置项

MySQL 有许多配置选项&#xff0c;可以用来调整其行为以满足特定的需求。以下是一些常见的配置选项&#xff0c;除了大小写敏感之外&#xff0c;这些配置选项也经常被调整&#xff1a; 1. 字符集和排序规则 character_set_server: 设置服务器的默认字符集。collation_server:…

【Spring】Spring Web MVC基础入门~(含大量例子)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是Spring Web MVC 1&#xff1a;Servlet 2&#xff1a;总结 二&#xff1a;MVC …

有向图的完全可达性(有向图搜索全路径的问题) C#DFs

在考察输入输出方面我觉得是道难题了 第一次遇见邻接表的数据结构该怎么声明 卡码网105 在力扣没找见完全相同的题 感觉需要多练习多复习这种类型的题 105. 有向图的完全可达性 题目描述 给定一个有向图&#xff0c;包含 N 个节点&#xff0c;节点编号分别为 1&…

登陆页面渗透测试常见的20种思路与总结

【渗透测试】16个实用谷歌浏览器插件分享 飞雪网络安全人才培养计划&#xff0c;绝对零区&#xff0c;公益教学&#xff01; 思路总结 1、之前是否已经留过后门&#xff0c;是&#xff0c;直接getshell&#xff0c;否&#xff0c;进行测试 2、SQL注入&万能密码&#xf…

qt QWebSocketServer详解

1、概述 QWebSocketServer 是 Qt 框架中用于处理 WebSocket 服务器端的类。它允许开发者创建 WebSocket 服务器&#xff0c;接受客户端的连接&#xff0c;并与之进行双向通信。WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议&#xff0c;它使得客户端和服务器之间的数…

Vue.js 事件处理器

Vue.js 事件处理器 Vue.js 是一个流行的前端框架,它提供了一种简洁而高效的方式来处理前端应用程序中的事件。事件处理器是 Vue.js 中一个核心概念,它允许开发者监听和响应 DOM 事件。在本文中,我们将深入探讨 Vue.js 事件处理器的各个方面,包括基本用法、修饰符、自定义事…

掌握分布式系统的38个核心概念

天天说分布式分布式&#xff0c;那么我们是否知道什么是分布式&#xff0c;分布式会遇到什么问题&#xff0c;有哪些理论支撑&#xff0c;有哪些经典的应对方案&#xff0c;业界是如何设计并保证分布式系统的高可用呢&#xff1f; 1. 架构设计 这一节将从一些经典的开源系统架…

中小跨境卖家如何选择物流?

跨境物流作为电商交易的核心环节&#xff0c;其复杂性和多变性对卖家来说不言而喻。本文将为您详细解析跨境物流的七大流程、常见物流测评以及推荐的工具&#xff0c;帮助您在激烈的市场竞争中把握物流优势&#xff0c;提升业务效率和客户满意度。 跨境物流七大流程 1. 启运国出…

6大国有银行软开的薪资待遇清单

牛客上刷到一条关于计算机专业值得去的银行软开清单,其中对 6 大国有银行软开的薪资待遇分析我觉得很有必要同步给大家看一看。 截图信息来自牛客的漫长白日梦 其中邮储软开是最值得推荐的(offer 投票没输过),二线城市转正后第一个完整年的收入在 30 万左右,一线城市更高…

我们来学mysql -- EXPLAIN之ID(原理篇)

EXPLAIN之ID 题记ID 题记 2024美国大选已定&#xff0c;川普剑登上铁王座&#xff0c;在此过程中出谋划策的幕僚很重要&#xff0c;是他们决定了最终的执行计划在《查询成本之索引选择》中提到&#xff0c;explain的输出&#xff0c;就是优化器&#xff08;幕僚&#xff09;选…

【网络安全】X-Forwarded-For漏洞成因及防范

文章目录 获取客户端IP背景如何获取客户端 IPIP 伪造防范 IP 伪造方法一:Nginx 配置方法二:Tomcat 的 RemoteIpValve方法三:Egg.js 的 maxProxyCount获取客户端IP背景 分布式拒绝服务攻击(DDoS)和频繁请求的爬虫行为属于异常请求,通过分析 IP 地址可以检测出这些异常行为…

蓝桥杯-网络安全比赛题目-遗漏的压缩包

小蓝同学给你发来了他自己开发的网站链接&#xff0c; 他说他故意留下了一个压缩包文件&#xff0c;里面有网站的源代码&#xff0c; 他想考验一下你的网络安全技能。 &#xff08;点击“下发赛题”后&#xff0c;你将得到一个http链接。如果该链接自动跳转到https&#xff0c;…

新疆高校大数据实验室案例分享

高校大数据实验室建设&#xff0c;企业可以提供技术支持、实训平台和项目案例&#xff0c;高校则提供科研和教学资源&#xff0c;实现产学研一体化。不仅有利于大数据技术的应用和人才培养也有利于区域发展。 泰迪与新疆合作的院校包括新疆大学、昌吉学院等 新疆大…

关于Flutter空安全升级方案整理

前言 Flutter 从 2.0 版本开始支持空安全&#xff08;Null Safety&#xff09;。dart 版本为&#xff1a; environment:sdk: ">2.12.0 < 3.0.0"升级到空安全后&#xff0c;由于语法的变动&#xff0c;基本上整个工程&#xff0c;代码都爆红&#xff0c;这对项…

干货 | 2024年数据要素白皮书(免费下载)

导读&#xff1a;白皮书在对比分析国际数据领域发展现状的基础上&#xff0c;围绕数据要素市场化配置改革这一主线&#xff0c;从数据高质量供给、数据创新应用、体制机制建设、产业探索方向四大方面展现了数据要素发展过程中&#xff0c;各类主体的新作为、新成效&#xff0c;…

RTT 内核基础学习

RT-Thread 内核介绍 内核是操作系统的核心&#xff0c;负责管理系统的线程、线程间通信、系统时钟、中断以及内存等。 内核位于硬件层之上&#xff0c;内核部分包括内核库、实时内核实现。 内核库是为了保证内核能够独立运行的一套小型的类似C库的函数实现子集。 这部分根据编…

发送/取消告警消息到nVisual接口详解

接口描述&#xff1a;发送/取消告警事件消息到nVisual系统 URL地址&#xff1a;http://ip:port/wapi/v1/notice 访问方法&#xff1a;POST 请求参数&#xff1a; Body参数 参数名类型示例值必填titleString端口告警是contentString端口光功率告警是userIdLong94000000000045…

六通道CAN集线器(协议型)

一、功能概述 SG_CanHub_600 是一款具有六路通道的工业级智能 CAN 数字隔离中继集线器。 SG_CanHub_600 能够实现信号再生、延长通信距离、提高总线负载能力、匹配不同速 率 CAN 网络&#xff0c;同时强大的 ID过滤功能可以极大降低 CAN 总线负荷&#xff0c;并具有故障指…