击剑动作识别程序-参数设置和视频文件选择
击剑动作识别程序-参数设置和视频文件选择
欢迎使用击剑动作识别程序V6.2(作者:冯楠20201888)
1. 选择输入视频文件
- 支持格式:*.mp4, *.avi
2. 调整参数
- 距离阈值:用于控制识别动作的灵敏度。
- 邻居数量:用于控制识别动作的稳定性。
使用方法
- 运行程序。
- 点击'选择文件'按钮选择输入视频文件。
- 使用滑动条调整距离阈值和邻居数量参数。
- 点击'运行'按钮开始处理视频。
代码示例
import tkinter as tk
from tkinter import filedialog
import cv2
# 修改distance_threshold
def set_distance_threshold(value):
global distance_threshold
distance_threshold = int(value)
# 创建窗口
root = tk.Tk()
root.withdraw()
# 显示使用说明信息
info = '欢迎使用击剑动作识别程序V6.2(作者:冯楠20201888)\n请选择输入视频文件\n支持格式:*.mp4, *.avi\n点击确认选择文件'
tk.messagebox.showinfo('使用说明', info)
# 定义选择文件函数
def select_file():
global input_path
root3 = tk.Tk()
root3.title('选择文件')
input_path = filedialog.askopenfilename(title='选择输入视频文件', filetypes=[('视频文件', '*.mp4;*.avi'), ('所有文件', '*.*')])
root3.destroy()
if not input_path:
tk.messagebox.showerror('错误', '未选择输入视频文件!')
root3.destroy()
return
# 更新标签显示选择的文件路径
file_label.config(text=input_path)
def closeit():
root2.destroy()
# 创建窗口2
root2 = tk.Tk()
root2.title('选择文件,调整参数')
root2.geometry('400x600')
# 创建标题
file_titles = tk.Label(root2, text='击剑动作识别程序', font=('宋体', 18))
file_titles.pack(pady=20)
# 创建标签
file_label = tk.Label(root2, text='未选择文件')
file_label.pack(pady=20)
file_label.config(bg='#e9ccd3')
select_button = tk.Button(root2, text='选择文件', command=select_file)
select_button.pack(pady=10)
# 创建标题
file_titles = tk.Label(root2, text='参数调整', font=('微软雅黑', 13))
file_titles.pack(pady=20)
# 创建滑动条
scale = tk.Scale(root2, from_=0, to=200, orient=tk.HORIZONTAL, length=150, label='距离阈值', command=set_distance_threshold)
scale.set(distance_threshold)
scale.pack()
def set_neighbors(val):
global neighbors
neighbors = int(val)
# 创建滑动条
scale = tk.Scale(root2, from_=1, to=10, orient=tk.HORIZONTAL, length=150, label='邻居数量', command=set_neighbors)
scale.set(neighbors)
scale.pack()
# 创建按钮
run_button = tk.Button(root2, text='运行', command=closeit)
run_button.pack(pady=20)
# 创建标签
file_name = tk.Label(root2, text=f"作者:冯楠2020188 物联网2班\n指导教师:朱勇\n版本:{version}", font=("Arial", 14))
file_name.pack(pady=20)
# 关闭窗口
root.destroy()
# 运行窗口
root2.attributes('-topmost', True)#窗口在最前
root2.mainloop()
root = tk.Tk()
root.withdraw()
info = f"视频已输出至{input_path}_OUT.mp4"
tk.messagebox.showinfo('处理完成', info)
tkinter标准GUI库在本程序中的作用
在本程序中,tkinter标准GUI库被用于创建一个图形用户界面(GUI),用于选择输入视频文件和调整参数。具体来说,程序中使用了以下tkinter组件:
tk.Tk():创建一个主窗口tk.Label():创建标签用于显示文本信息tk.Button():创建按钮用于触发事件tk.Scale():创建滑动条用于调整参数tk.messagebox.showinfo():创建消息框用于显示处理完成信息
通过使用这些组件,程序可以提供一个友好的界面,让用户可以方便地进行文件选择和参数调整,并且可以通过消息框向用户输出处理完成的信息。
原文地址: https://www.cveoy.top/t/topic/gQ0y 著作权归作者所有。请勿转载和采集!