大学生毕设神器 | 田径运动自动技术系统的开发 基于OpenCV识别田径运动计数

🔥作者主页:疯狂行者🔥 💖✌java领域优质创作者,专注于Java技术领域技术交流✌💖
💖文末获取源码💖
精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

Java精彩实战项目案例

Java精彩新手项目案例

Python精彩新手项目案例


前言

本次文章主要是介绍,大学生毕设神器 | 田径运动自动技术系统的开发 基于OpenCV识别田径运动计数

一、系统功能

1.1 开发环境

  • 开发语言:python - 技术:OpenCV

二、系统分析

2.1 需求分析

在田径运动自动技术系统中,用户是唯一的角色。用户需要完成登录注册、运动计数和查询等功能。具体来说,用户可以通过登录注册功能进行账号注册和登录操作;可以通过运动计数功能选择运动视频、选择运动类型,提交计数等操作,完成对某类运动的自动化识别和计数;可以通过查询功能查看最近记录和全部记录,方便用户进行数据的查看和管理。通过以上的功能模块,用户可以方便地进行田径运动的自动化处理和数据管理,从而提高运动的效率和质量。此系统详细功能模块分析如下所示:
(1)登录注册功能模块:该功能模块主要用于用户的账号注册和登录操作。用户可以通过注册功能进行账号注册,填写学号、姓名和性别,注册成功后可以使用该账号进行登录操作。登录功能需要输入正确的学号才能成功,登录成功后可以访问系统的其他功能模块。
(2)运动计数功能模块:该功能模块主要用于对某类运动进行自动化识别和计数。用户可以选择运动视频,并选择对应的运动类型,系统将自动对视频进行分析和处理,提取出运动数据和特征,并进行计数统计,在此模块中运动类型目前只提供了三种,包含引体向上、深蹲、俯卧撑。用户可以提交计数结果,系统将保存计数数据,方便用户进行后续的数据分析和管理。
(3)查询功能模块:该功能模块主要用于用户查询最近记录和全部记录。用户可以通过查询功能查看自己最近的计数记录和所有计数记录,可以进行数据的筛选和查看,方便用户进行数据的管理和分析。
在这里插入图片描述

2.2 架构设计

田径运动自动技术系统的设计架构主要分为前端、后端和数据库三个部分。
前端部分采用PyQt5库进行设计,实现了用户界面和交互操作。在前端部分中,系统包含了登录注册界面、选择运动视频界面、选择运动类型界面、提交计数结果界面和查询最近记录和全部记录界面等功能模块。在这些模块中,用户可以通过简单的操作来实现对系统的管理和控制。
后端部分采用Django库进行设计,实现了数据的处理和逻辑控制。在后端部分中,系统包含了多个视图函数和模型,用于处理用户的请求和返回相应的数据。例如,系统需要对用户提交的计数结果进行处理和统计,需要对用户查询的最近记录和全部记录进行查询和返回等。
数据库部分采用MySQL数据库进行设计,实现了数据的存储和管理。在数据库部分中,系统需要定义多个表,例如用户信息表、运动计数表等,用于存储和管理用户提交的数据和系统运行的数据。
在这里插入图片描述

2.3 运动识别计数流程设计

田径运动自动技术系统的业务流程主要分为登录注册、运动计数模式和查询模式三个环节。首先是登录注册环节,用户需要进行账号注册和登录,系统需要进行用户身份认证和密码加密传输,确保用户数据的安全和保密。其次是运动计数模式环节,用户需要选择运动视频和运动类型,通过计数结果提交表单来进行运动计数。系统需要对用户提交的数据进行处理和统计,并将计数结果存储到数据库中。最后是查询模式环节,用户可以查询最近记录和全部记录,查看历史计数结果和相关信息。系统需要从数据库中查询相应的数据,并将结果返回给用户。整个业务流程的环节相互配合,用户可以方便地进行账号管理、运动计数和数据查询。该系统的业务流程设计简单、直观,易于操作和管理

在这里插入图片描述

三、部分功能展示

☀️注册页面展示☀️
在这里插入图片描述

☀️登录展示☀️
在这里插入图片描述

☀️计数展示☀️
在这里插入图片描述

☀️可视化展示☀️
在这里插入图片描述

四、部分代码设计

4.1.上传视频【代码如下(示例):】

def file(self, selectwindow):     filename = QtWidgets.QFileDialog.getOpenFileNames(selectwindow, '选择视频', os.getcwd(), "mp4 Files(*.mp4);;avi Files(*.avi)")     # 输出文件,查看文件路径     # print(filename)     # 根据输出结果选取对应的文件名     if filename[0]:         self.outname = filename[0][0]         self.filename.setText(filename[0][0])     else:         self.filename.setPlaceholderText("请选择mp4或avi格式的视频")

4.2.注册【代码如下(示例):】

def registerBtn(self, registerwindow, indexwindow):     uid = self.lineEdit.text()                       # 学号     id_list = [n[0] for n in session.query(User.uid).all()]     if uid in id_list:  # 检查数据库中是否存在该学生         QtWidgets.QMessageBox.warning(registerwindow, '错误', f"学号{uid}已被注册!", QtWidgets.QMessageBox.Yes)         return     uname = self.lineEdit_4.text()             # 获取输入的用户名     sex = self.comboBox.currentText()     user = User(uid=uid, uname=uname, sex=sex)    # 创建用户对象     session.add(user)                                   # 添加到session     session.commit()                                    # 提交到数据库     registerwindow.close()

4.3.登录【代码如下(示例):】

def loginBtn(self, loginwindow):     uid = self.lineEdit.text()     id_list = [n[0] for n in session.query(User.uid).all()]     if uid not in id_list:         QtWidgets.QMessageBox.warning(loginwindow, '错误', f"没有找到学号为'{uid}'的用户", QtWidgets.QMessageBox.Yes)         return     self.lineEdit.clear()     loginwindow.close() 
	

总结

源码获取:

大家点赞、收藏、关注、评论啦 、

打卡 文章 更新 104/ 365天

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

Java精彩实战项目案例

Java精彩新手项目案例

Python精彩新手项目案例

  • 34
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂行者

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值