HPE-System für Bachelor
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.8 KiB

import tkinter as tk
from tkinter import filedialog
from tkinter import Label
from DataStreamModule import DataStreamModule
from HPEModule import HPEModule
import threading
class PoseEstimationGUI:
def __init__(self):
self.mp4_file_path = None
self.root = tk.Tk()
self.root.title("Pose Estimation GUI")
self.root.geometry("400x200")
self.camera_options = [] # Initialize camera options list
# Create a drop-down menu with available cameras
self.camera_options = DataStreamModule().findCameras()
self.selected_camera = tk.StringVar()
self.selected_camera.set(self.camera_options[0]) # default value
camera_menu = tk.OptionMenu(self.root, self.selected_camera, *self.camera_options)
camera_menu.pack()
# Create a button to start pose estimation
self.start_button = tk.Button(self.root, text="Start Pose Estimation", command=self.start_pose_estimation)
self.start_button.pack()
# Create a button to select an mp4 file
self.select_file_button = tk.Button(self.root, text="Select MP4 File to Start HPE on", command=self.select_file)
self.select_file_button.pack()
# Create label widget to indicate file selection status
self.file_selected_label = Label(self.root, text="No file selected", fg="red")
self.file_selected_label.pack(pady=10)
self.root.mainloop()
def start_pose_estimation(self):
if self.mp4_file_path is not None:
# Start pose estimation on the selected mp4 file
pose_estimator = HPEModule()
pose_thread_file = threading.Thread(target=pose_estimator.startHPEwithCamera, args=(self.mp4_file_path,))
self.mp4_file_path = None
self.file_selected_label.config(text="No File selected", fg="red")
pose_thread_file.start()
else:
# Start pose estimation on the selected camera
# print(self.selected_camera.get())
pose_estimator = HPEModule()
camera = int(self.selected_camera.get())
pose_thread_camera = threading.Thread(target=pose_estimator.startHPEwithCamera, args=(camera,))
pose_thread_camera.start()
def select_file(self):
self.mp4_file_path = filedialog.askopenfilename(initialdir="/", title="Select MP4 File to Start HPE on",
filetypes=(("mp4 files", "*.mp4"), ("all files", "*.*")))
# Update file selection status label
if self.mp4_file_path:
self.file_selected_label.config(text="File selected", fg="green")
else:
self.file_selected_label.config(text="No File selected", fg="red")
self.mp4_file_path = None
if __name__ == '__main__':
PoseEstimationGUI()