parent 3450e97dad
commit 9a0f7bc358

@ -3,7 +3,6 @@ from tkinter import *
from tkinter import ttk from tkinter import ttk
from PIL import Image, ImageTk from PIL import Image, ImageTk
import numpy as np import numpy as np
import subprocess
from gesture_recognition import start_recognition, stop_recognition, release_camera, reset_hand_detection from gesture_recognition import start_recognition, stop_recognition, release_camera, reset_hand_detection
WINDOW_WIDTH = 800 WINDOW_WIDTH = 800
@ -13,7 +12,6 @@ status_label = None
root = None root = None
popup_open = False popup_open = False
paused = False paused = False
ten_fingers_detected = False
def main(): def main():
"""显示欢迎屏幕""" """显示欢迎屏幕"""
@ -87,13 +85,13 @@ def show_main_screen():
def start_thread(root, canvas, status_label): def start_thread(root, canvas, status_label):
"""启动识别线程""" """启动识别线程"""
global paused, popup_open, ten_fingers_detected global paused, popup_open
if not paused: if paused:
status_label.config(text="正在识别...") reset_hand_detection() # 重置手部检测状态
paused = False status_label.config(text="正在识别...")
popup_open = False paused = False
ten_fingers_detected = False popup_open = False
threading.Thread(target=lambda: start_recognition(callback=lambda fingers, img: root.after(0, update_canvas, canvas, fingers, img))).start() threading.Thread(target=lambda: start_recognition(callback=lambda fingers, img: root.after(0, update_canvas, canvas, fingers, img))).start()
def stop_recognition_with_label(status_label): def stop_recognition_with_label(status_label):
"""停止识别并更新状态标签""" """停止识别并更新状态标签"""
@ -123,19 +121,12 @@ def update_canvas(canvas, fingers, img):
def handle_finger_detection(finger_count): def handle_finger_detection(finger_count):
"""处理检测到的手指数""" """处理检测到的手指数"""
global paused, popup_open, main_launched, ten_fingers_detected global paused, popup_open
if finger_count == 10 and not main_launched: if finger_count == 5:
main_launched = True if not paused and not popup_open:
ten_fingers_detected = True paused = True
launch_main_script() popup_open = True
elif finger_count == 5 and not ten_fingers_detected and not popup_open: show_stop_recognition_window()
paused = True
popup_open = True
show_stop_recognition_window()
def launch_main_script():
"""启动 main.py 脚本"""
subprocess.Popen(['python', 'main.py'])
def show_stop_recognition_window(): def show_stop_recognition_window():
"""显示停止识别确认窗口""" """显示停止识别确认窗口"""
@ -145,7 +136,6 @@ def show_stop_recognition_window():
paused = False paused = False
popup_open = False popup_open = False
stop_window.destroy() stop_window.destroy()
reset_hand_detection()
start_thread(root, canvas, status_label) start_thread(root, canvas, status_label)
def on_stop(): def on_stop():

Loading…
Cancel
Save