人脸识别系统代码---登陆界面

导入模块:

代码首先导入了Tkinter模块用于创建GUI,messagebox用于弹出消息框,subprocess用于运行其他Python脚本,PIL的ImageTk和Image用于处理图像。

import tkinter as tk
from tkinter import messagebox
import subprocess
from PIL import ImageTk, Image

设置窗口:

创建了主窗口win,并设置了标题和大小。

win=tk.Tk()
win.title('人脸识别系统')
win.geometry('600x650')

设置背景图:

使用PIL的Image打开背景图,调整大小后使用ImageTk创建一个适合Tkinter的图像对象,然后创建一个Label将其作为窗口背景。

image = Image.open("1.gif")
image = image.resize((600, 650))  # 调整背景图片大小
photo1 = ImageTk.PhotoImage(image)
# 创建Label并将背景图片设置为背景
canvas = tk.Label(win, image=photo1)
canvas.pack()

功能定义:

代码定义了几个函数,每个函数都用来启动不同的Python脚本,这些脚本构成了人脸识别系统的不同部分(识别、提取、标注、对比、动态处理)。每个函数尝试使用subprocess.Popen运行相应的Python脚本,并在出现错误时使用messagebox.showerror显示错误消息。

#定义识别
def S():
    script_path = "识别.py"
    try:
        #运行文件
        subprocess.Popen(["python", script_path])
        win.destroy()
    except Exception as e:
        # 如果有错误,弹出消息框
        messagebox.showerror("Error", f"无法打开脚本:{e}")


#定义提取
def T():
    script_path = "提取.py"
    try:
        # 运行文件
        subprocess.Popen(["python", script_path])
        win.destroy()
    except Exception as e:
        # 如果有错误,弹出消息框
        messagebox.showerror("Error", f"无法打开脚本:{e}")


#定义标注
def B():
    script_path = "标注.py"
    try:
        #运行文件
        subprocess.Popen(["python", script_path])
        win.destroy()
    except Exception as e:
        # 如果有错误,弹出消息框
        messagebox.showerror("Error", f"无法打开脚本:{e}")

#定义对比
def R():
    script_path = "人脸比对.py"
    try:
        # 运行文件
        subprocess.Popen(["python", script_path])
        win.destroy()
    except Exception as e:
        # 如果有错误,弹出消息框
        messagebox.showerror("Error", f"无法打开脚本:{e}")


#定义动态处理
def D():
    script_path = "动态处理.py"
    try:
        #运行文件
        subprocess.Popen(["python", script_path])
        win.destroy()
    except Exception as e:
        # 如果有错误,弹出消息框
        messagebox.showerror("Error", f"无法打开脚本:{e}")

退出功能:

定义了一个退出函数,当用户点击退出按钮时,会弹出一个确认框询问用户是否真的要退出,如果用户确认,则销毁窗口。

def close():
    if messagebox.askokcancel("退出", "确定要退出吗?"):
        win.destroy()

按钮设计:

为每个功能创建了一个按钮,每个按钮都绑定了一个图像和一个命令,命令会调用之前定义的函数。按钮被放置在窗口的特定位置。

image = Image.open("2.gif")  # 加载一张图片
photo2 = ImageTk.PhotoImage(image)
bt1 = tk.Button(win, image=photo2, width=198, height=35, command=S)
bt1.place(x=100, y=90)

#人脸提取按钮
image = Image.open("3.gif")  # 加载一张图片
photo3 = ImageTk.PhotoImage(image)
bt2 = tk.Button(win,image=photo3,width=198,height=35,command=T)
bt2.place(x=300,y=155)

#特征标注按钮
image = Image.open("4.gif")  # 加载一张图片
photo4 = ImageTk.PhotoImage(image)
bt3 = tk.Button(win,image=photo4,width=198,height=35,command=B)
bt3.place(x=100,y=220)

#动态处理按钮
image = Image.open("5.gif")  # 加载一张图片
photo5 = ImageTk.PhotoImage(image)
bt4 = tk.Button(win,image=photo5,width=198,height=35,command=D)
bt4.place(x=100,y=350)

#人脸对比按钮
image = Image.open("F4.gif")  # 加载一张图片
photo6 = ImageTk.PhotoImage(image)
bt4 = tk.Button(win,image=photo6,width=198,height=35,command=R)
bt4.place(x=300,y=285)

#退出按钮
image = Image.open("6.gif")  # 加载一张图片
photo7 = ImageTk.PhotoImage(image)
bt = tk.Button(win, image=photo7,  text="退出",width=170,height=110,command=close)
bt.place(x=380,y=400)

主循环:

最后,调用win.mainloop()启动Tkinter的事件循环,这会使窗口保持打开状态,直到用户关闭它。

win.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值