首页
留言板
友链
统计
Search
1
树莓派换源最新教程及注意事项(更换为清华源)
1,573 阅读
2
Alist上传大文件报错Request failed with status code 413
685 阅读
3
google colab打包下载文件夹
638 阅读
4
Luat Air780E/Air700E使用MQTT协议接入巴法云物联网平台
378 阅读
5
Luat Air780E/Air700E获取设备经纬度后使用MQTT协议发送至巴法云
352 阅读
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
登录
Search
标签搜索
esp8266
air700e
typecho
onenet
mediapipe
悄悄话
星星
累计撰写
34
篇文章
累计收到
26
条评论
首页
栏目
嵌入式笔记
stm32
esp8266
raspberry-pi
esp32
机器视觉笔记
opencv
yolo
typecho笔记
vps
typecho美化
悄悄话
页面
留言板
友链
统计
搜索到
1
篇与
的结果
2023-04-25
opencv视觉小游戏—石头剪刀布
效果展示{bilibili bvid="BV1aQ4y1Q7Lf" page=""/}程序代码{cloud title="石头剪刀布源码" type="lz" url="https://wwtn.lanzout.com/inakT0txuo1i" password=""/}石头剪刀布代码解释 这是一个手势石头剪刀布游戏的Python代码。这个游戏使用计算机视觉技术检测玩家的手势,并将其与计算机生成的随机手势进行比较。玩家和计算机都可以选择石头,剪刀或布。如果玩家赢了,则得分加1,如果玩家输了,则得分减1。如果平局,则不会加分或减分。游戏将持续进行直到程序被停止。1、代码首先导入所需的库,包括cv2(OpenCV)用于图像处理和检测手势,time用于计时,os用于读取图像文件,以及一个名为HandTrackingModule的自定义模块,用于手势识别。然后,代码设置一些常量,包括摄像头的宽度和高度,胜利和失败的消息,以及一个用于存储图像文件的文件夹路径。2、接下来,代码读取图像文件夹中的所有图像文件,并将它们存储在一个列表中。然后,代码初始化一个HandTrackingModule对象,用于检测手势。代码还定义了一个包含手指顶部ID的列表,这些ID对应于手指的末端。最后,代码进入一个无限循环,每次循环中检测玩家的手势并计算得分。3、在每次循环中,代码读取摄像头的当前帧,并使用HandTrackingModule对象检测手势。代码检查检测到的手指数量,并将其与预设的手势相匹配(石头、剪刀、布)。如果匹配成功,则代码将显示相应的消息并将变量end设置为“win”或“fail”,表示玩家赢了或输了。代码还将检查计算机随机生成的手势,并将其显示在图像上。4、一旦检测到手势,代码将比较玩家的手势和计算机生成的手势。如果两者相同,则比赛平局。如果玩家赢了,则得分加1,如果玩家输了,则得分减1。代码将显示得分,以及最近一次比赛的结果。5、一旦比赛结束并且时间超过两秒钟,代码将重置所有变量并开始新的游戏。HandTrackingModule代码解释1、这是一个使用Mediapipe库和OpenCV库实现的手部检测器。它可以检测图像或视频中的手部,并给出手部的关键点位置。这个程序使用了一个名为handDetector()的类来实现手部检测和关键点检测。该类的构造函数可以设置一些参数,如最大手数、检测置信度和跟踪置信度等。2、findHands()函数使用Mediapipe库来检测图像中的手部,并在图像中绘制出检测到的手部的关键点。findPosition()函数可以通过检测到的关键点返回手部的关键点位置。3、在主函数中,我们打开计算机的摄像头,不断地读取帧,并在每一帧中调用findHands()和findPosition()函数来检测手部,并绘制关键点。程序还会计算每秒钟处理的帧数(FPS)并显示在窗口中。
2023年04月25日
133 阅读
0 评论
0 点赞