python 打造一个微信跳一跳辅助!(手机本地运行)

Posted sunny开始学坏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 打造一个微信跳一跳辅助!(手机本地运行)相关的知识,希望对你有一定的参考价值。

先上成果效果图:

超级瞄准已部署!

精确定位目标中心!

 

用opencv 做识图识别出棋子的坐标并把它框出来

终点位置的坐标是:

先观察图像发现棋子每跳过后的下一个目标点总是在棋子的上面

这样就可以先获取一个感兴趣的区域,用numpy切出自己感兴趣的区域

然后高斯模糊一下,找寻图像中的轮廓效果特别棒!

 

 

如图:

然后找出感兴趣的区域也就是中间那一块

接着寻找终点的位置:

用十字把它标出来:

 

 接下来框出棋子的位置:

标出两点的位置:

然后根据棋子和终点的坐标建立一个三角函数公式

连线两点的位置

测试压力系数为1.8

然后模拟点击和截屏循环运行就可以了

更多效果图片:

跳到正中间!

各种方块都测试通过

 

 

最后上代码:

 1 # -*- coding:utf-8 -*-
 2 import cv2,show
 3 import numpy as np 
 4 import math
 5 import time
 6 import dian
 7 v=0
 8 while v<1:
 9    v=v+1
10    img = cv2.imread(\'/sdcard/3.png\')  
11    #img1 = cv2.imread(\'/sdcard/52.png\')  
12    img1=img
13    hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
14    lower_blue = np.array([110,50,50])
15    upper_blue = np.array([130,255,255])
16    mask = cv2.inRange(hsv, lower_blue, upper_blue)  
17    ret, binary = cv2.threshold(mask,0,255,cv2.THRESH_BINARY) 
18    contours, hierarchy = cv2.findContours(binary,1,cv2.CHAIN_APPROX_SIMPLE)  
19    cnt=contours[len(contours)-1]
20    a=0
21    dict={}
22    for i in contours:
23        dict[len(i)]=a
24        a=a+1
25    li=np.sort([l for l in dict.keys()],axis=0)[::-1]
26    x, y, w, h = cv2.boundingRect(contours[dict[li[0]]])
27    cv2.rectangle(img1, (x, y), (x+w, y+h), (0,255,0), 5)
28    qi=[x,y,w,h]
29    img2=img1[350:1660]  
30    img2 = cv2.GaussianBlur(img2,(3,3),0)  
31    canny = cv2.Canny(img2, 50, 150)  
32    b=0
33    lk=[]
34    for i in range(canny.shape[0]):
35        x=canny[i]
36        a=0
37        if b==1:
38            break
39        for c in x:
40            a=a+1
41            if c==255:
42                lk.append([i+350,a])
43                b=1
44    cv2.line(img1,(lk[0][1]+20,lk[0][0]),(lk[0][1]-20,lk[0][0]),(255,0,0),5)
45    cv2.line(img1,(lk[0][1],lk[0][0]+20),(lk[0][1],lk[0][0]-20),(255,0,0),5)
46    zhon=[lk[0][1],lk[0][0]]
47    qil=[qi[0]+int(qi[2]/2),qi[1]+qi[3]]
48    print(\'起点\')
49    print(qil)
50    print(\'终点\')
51    print(zhon)
52    cv2.line(img1,(qil[0]+20,qil[1]),(qil[0]-20,qil[1]),(0,0,255),5)
53    cv2.line(img1,(qil[0],qil[1]+20),(qil[0],qil[1]-20),(0,0,255),5)
54    cv2.line(img1,(qil[0],qil[1]),(zhon[0],zhon[1]),(255,0,0),5)
55    yl=qil[1]-zhon[1]
56    xl=qil[0]-zhon[0]
57    #print(xl,yl)
58    lcd=int(yl*yl)+int(xl*xl)
59    cd=int(math.sqrt( lcd ))
60    print(\'长度按压时间:\')
61    an=int(cd*1.18)
62    print(an)
63    dian.dian(str(an))
64    time.sleep(2)
65    show.show(img1)

依赖库

import cv2,show
import numpy as np 
import math
其它为一些辅助,注释掉即可!

以上是关于python 打造一个微信跳一跳辅助!(手机本地运行)的主要内容,如果未能解决你的问题,请参考以下文章

《微信跳一跳》通过Python脚本获得高分教程

微信跳一跳python怎么刷分_微信跳一跳python使用教程

辅助工具Python实现微信跳一跳

python跳一跳辅助学习

微信跳一跳辅助JAVA 自动模拟点击

微信跳一跳辅助