击剑动作识别程序 - 设置距离阈值

本程序使用 tkinter 库提供了一个界面,允许用户修改 distance_threshold 全局变量的值。该变量用于控制 KNN 算法中邻居之间的距离阈值。

代码:

# 一些全局变量
label = [' ']  # 识别输出标签
posess = ''  # 视频输出标签
i = 0
t = 30  # 后处理帧数
posess_a = ''
posess_b = ''
a = 1.2  # 辅助拟合精度
distance_threshold = 121  # 设置 KNN 距离阈值
neighbors = 2  # 邻居
input_path = ''

# 初始化 MediaPipe 的人体姿势模型
mp_drawing = mp.solutions.drawing_utils
mp_pose = mp.solutions.pose

# 创建窗口
root = tk.Tk()
root.withdraw()

# 显示使用说明信息
info = '欢迎使用击剑动作识别程序 V6.2(作者:冯楠 20201888)\n请选择输入视频文件\n支持格式:*.mp4, *.avi\n点击确认选择文件'
tk.messagebox.showinfo('使用说明', info)

# 选择输入视频文件
input_path = filedialog.askopenfilename(title='选择输入视频文件', filetypes=[('视频文件', '*.mp4;*.avi'), ('所有文件', '*.*')])
if not input_path:
    tk.messagebox.showerror('错误', '未选择输入视频文件!')
    exit()

# 关闭窗口
root.destroy()

# 修改距离阈值
def set_distance_threshold(value):
    global distance_threshold
    distance_threshold = value

# 创建窗口,用于修改距离阈值
window = tk.Tk()
window.title('设置距离阈值')
window.geometry('200x100')

# 创建滑动条,用于修改距离阈值
scale = tk.Scale(window, label='距离阈值', from_=0, to=200, orient=tk.HORIZONTAL, command=set_distance_threshold)
scale.set(distance_threshold)
scale.pack()

# 运行窗口
window.mainloop()

说明:

  1. 该代码使用了 tkinter 库创建了一个窗口,并使用 Scale 小部件创建了一个滑动条,用于调整 distance_threshold 的值。
  2. set_distance_threshold() 函数用于更新全局变量 distance_threshold 的值。
  3. 在程序中,用户可以使用滑动条调整 distance_threshold 的值,并将新的值应用于 KNN 算法。

如何使用:

  1. 运行代码,将弹出一个窗口,用于设置 distance_threshold 的值。
  2. 拖动滑动条,调整 distance_threshold 的值。
  3. 关闭窗口,继续运行程序。

注意:

  • distance_threshold 的值会影响 KNN 算法的性能。建议根据具体情况调整该值,以获得最佳效果。
  • 此代码只是一个简单的示例,您可以根据自己的需要进行修改和扩展。

原文地址: https://www.cveoy.top/t/topic/gQVH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录