Skip to content

用Python+Opencv自动玩PC端微信跳一跳小程序

Notifications You must be signed in to change notification settings

B5DX/pc_wechat_jump_auto

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PC端微信跳一跳小程序破解

自动玩Windows PC端微信跳一跳。使用opencv-python检测跳棋位置和跳板中心位置。

可能需要调整的参数:

  1. window_left_top和window_right_bottom的值,保证截图区域准确。
  2. temp_player.jpg和temp_end.jpg最好自己重新截图以匹配分辨率。
  3. jump函数中的参数2.735以及moveTo鼠标移动位置。
  4. 当距离过近时容易跳远,程序末尾进行了距离缩放。该参数可能需要调整。

算法原理

识别跳棋

识别跳棋时直接使用cv2.matchTemplate与temp_player.jpg进行模板匹配即可。

识别目标跳板中心点

直接识别白点的准确率不高,因此修改了原库的实现,全部使用边缘检测确定目标跳板中心点。

  1. 先进行Canny边缘检测。
  2. 然后擦除边缘图中跳棋及其邻域的像素。
  3. 裁剪截图避免边界和左上角分数数字的影响。
  4. 逐行扫描,当出现非0像素点时即找到目标跳板的顶部中心点坐标(x_top, y_top)。
  5. 根据跳板在跳棋左侧还是右侧识别跳板的边缘,得到顶部中心点和边缘点在x轴(横轴)方向的差值x_delta,用来预估跳板的大小。
  6. y_bottom = y_top + x_delta,相当于让顶点y坐标根据跳板大小进行预先偏移,目的是跳过小白点且避免跳板本身纹路的影响。然后从y_bottom开始逐渐增加y坐标,查看(y, x_top)附近是否有像素,有则视为找到了底部顶点。则要跳到的目标点即为(y_top + y_bottom) / 2.

About

用Python+Opencv自动玩PC端微信跳一跳小程序

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%