开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3126|回复: 21
打印 上一主题 下一主题
收起左侧

[2022开源大赛(第七届)] 易语言和python做的手指识别戳气球小游戏

[复制链接]
结帖率:100% (1/1)
跳转到指定楼层
楼主
发表于 2022-11-3 11:18:52 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式   北京市北京市
python部分主要使用opencv识别手指坐标,socket发送消息到易语言的服务器组件,需要准备的工作:
准备工作时间相对较长,有python环境可以忽略1-2-3步骤。

1、anaconda 安装
https://blog.csdn.net/ITLearnHall/article/details/81708148

2、创建python环境
conda create -n aimbot_env python==3.8.0

3、切换虚拟环境
conda activate aimbot_env

4、安装必须的模块
pip install cv2
pip install mediapipe

5、安装完成之后需要确认 runcv.bat 文件的 python.exe 路径是否正确,闪退的话在 runcv.bat 加入新行如下,查看错误日志
pause

易语言部分主要是游戏的显示和背景音效,使用动画框和bass,把opencv的窗口叠在易语言主窗口下面,易语言窗口置背景透明。

使用精易模块,bass模块。

删掉了sound\bgm1.mp3,文件太大可以自行找一个文件放过去。

手指戳气球.zip (470.35 KB, 下载次数: 23)

1.jpg (97.82 KB, 下载次数: 0)

1.jpg

评分

参与人数 4好评 +4 精币 +10 收起 理由
易语言资源网 + 1 + 3 开源精神必须支持~
陽陽陽 + 1 + 1 大佬N B!要是能讲一下手势调用就好了
hehehero + 1 + 3 有创意
冰点 + 1 + 3 感谢分享,很给力!~

查看全部评分

22
发表于 2023-2-11 02:18:36 | 只看该作者   天津市天津市
6666666,感谢大佬分享,精易有你明天更美好
回复 支持 反对

使用道具 举报

21
发表于 2022-12-15 10:39:57 | 只看该作者   江西省吉安市
6666666,感谢大佬分享,精易有你明天更美好
回复 支持 反对

使用道具 举报

20
发表于 2022-11-24 22:49:44 | 只看该作者   四川省绵阳市
感谢你的支持,精易有你更精彩!
回复 支持 反对

使用道具 举报

19
发表于 2022-11-19 15:12:53 | 只看该作者   湖南省郴州市
哈哈 好有趣啊
回复 支持 反对

使用道具 举报

18
发表于 2022-11-18 20:23:39 | 只看该作者   河南省许昌市
感谢你的支持,精易有你更精彩!
回复 支持 反对

使用道具 举报

17
发表于 2022-11-13 14:11:12 | 只看该作者   湖南省湘西土家族苗族自治州
666感谢分享
回复 支持 反对

使用道具 举报

16
发表于 2022-11-9 15:49:06 | 只看该作者   广东省珠海市
        开源精神必须支持~
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 13 天

15
 楼主| 发表于 2022-11-9 08:40:08 | 只看该作者   北京市北京市
陽陽陽 发表于 2022-11-3 22:42
大佬N B!要是能讲一下手势调用就好了

[Python] 纯文本查看 复制代码
import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1270)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

mpHands = mp.solutions.hands
hands = mpHands.Hands() #使用meidapipe的手部追踪模型
mpDraw = mp.solutions.drawing_utils #将点坐标画在手上的函数
handLmsStyle = mpDraw.DrawingSpec(color=(0,0,255), thickness=5)#调整点的样式
handConStyle = mpDraw.DrawingSpec(color=(0,255,0), thickness=10)#线的样式
pTime = 0
cTime = 0

while True:
    ret, img1 = cap.read()
    img = cv2.flip(img1, 1)
    if ret:
        imgRGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #把bgr的图片转化成rgb
        result = hands.process(imgRGB)
        #print(result.multi_hand_landmarks)#侦测手并输出手的坐标
        imgHeight = img.shape[0]
        imgWidth = img.shape[1]

        if result.multi_hand_landmarks:
            for handLms in result.multi_hand_landmarks:
                mpDraw.draw_landmarks(img,handLms,mpHands.HAND_CONNECTIONS,handLmsStyle,handConStyle)
                for i, lm in enumerate(handLms.landmark):
                    xPos =int(lm.x * imgWidth)
                    yPos =int(lm.y * imgHeight)
                    #cv2.putText(img , str(i),(xPos-25,yPos+5),cv2.FONT_HERSHEY_SIMPLEX,0.4,(0,0,255),2)#给点编号

                    print(i, xPos, yPos)

        #算手部追踪的帧率
        cTime = time.time()
        fps   = 1/(cTime-pTime)
        pTime = cTime
        cv2.putText(img, f'fps  : {int(fps)}',(30,50),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),3)


        cv2.imshow('img',img)
        if cv2.waitKey(1) == ord('q'):#点q关闭运行
            Break


回复 支持 反对

使用道具 举报

14
发表于 2022-11-5 12:57:00 | 只看该作者   广西壮族自治区玉林市
6666666,感谢大佬分享,精易有你明天更美好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表