在知乎上看到这个教你用python来玩微信跳一跳,受到这个启发,我试了试做一个微信大家来找茬的助手,无奈自己水平太菜,只能做一个很简单的,还没发做到自动玩自动刷新。但是由于比较简单,不到50行代码,还是挺适合新手的。
玩的时候需要连接电脑,基本要求和上面的那个跳一跳一样,安装配置可以参考上面的配置。基本流程也一样。首先,获取手机屏幕截图。
os.system('adb shell screencap -p /sdcard/findTheDiff.png')
os.system('adb pull /sdcard/findTheDiff.png .')
其次,将两张图片从手机屏幕截图中抠出来,因为微信对战的界面是固定的,这个也很简单。
img=cv2.imread('findTheDiff.png')
crop_img1=img[99:924,199:1024]#这里需要将对比的部分以img的格式提取出来
crop_img2=img[997:1822,199:1024]
接着,将两张图片的RGB值相减,相同的地方RGB值会很小,近似为黑色,不同的地方很明显就不一样。这里运用了PIL的内置函数ImageChops.difference,因此,需要将上面得到的两幅图片转换为Image对象才能调用。
out=ImageChops.difference(img1,img2)
然后使用matplotlib将相减后的图形画出来,
可以看到,不同的部分都被提取出来了,对战的时候,直接在输入框输入回车键就可以更新图片了,然后直接用鼠标点击不同的地方就好了。完整代码地址。