当前位置:   article > 正文

python使用uiautomator2操作雷电模拟器9找图(一)_aircv找图

aircv找图

接上篇文章python使用uiautomator2操作雷电模拟器9并遇到解决adb 连接emulator-5554 unauthorized问题-CSDN博客

搭建好uiautomator2后,主要就是使用了。

本文就利用uiautomator2的截屏、模拟点击和aircv的找图功能,实现对指定寻找的图片的位置的点击。

环境:python3.8.10,雷电模拟器9

安装库:pip38 install aircv

找图文章参考:

https://blog.51cto.com/u_16213450/9633239

ac.find_template识别图片并定位-CSDN博客

上我的代码:

  1. import aircv as ac
  2. import uiautomator2 as u2
  3. import time
  4. d = u2.connect() # connect to device
  5. print(d.info)
  6. displayWidth = d.info['displayWidth']
  7. displayHeight = d.info['displayHeight']
  8. print(displayWidth,displayHeight)
  9. imsrc = ac.imread('s1.png')#源图,全范围图
  10. imobj = ac.imread('s2.png')#目标图,局部图
  11. pos = ac.find_template(imsrc, imobj)
  12. print(pos)
  13. print(pos['result'][0])#横坐标
  14. print(pos['result'][1])#纵坐标
  15. #找不到的时候,会返回None
  16. #找到的时候,返回{'result': (360.0, 828.5), 'rectangle': ((307, 808), (307, 849), (413, 808), (413, 849)), 'confidence': 0.9999998807907104}
  17. #pos的数据含义为匹配图片在原始图片上的中心坐标点,也就是我们要找的click点,rectangle为矩形坐标(以左上角为坐标原点),confidence是匹配度。
  18. # if float(pos['confidence']) > 0.95:#符合精准度,就是找到了
  19. # print('Have Search')
  20. #使用uiautomator2的click点击找到的图片
  21. #uiautomator2中click输入的是比例(为了适应各种手机屏幕),需要使用 目标点像素的宽 / 屏幕宽,目标点像素高 / 屏幕高
  22. time.sleep(3)
  23. d.click(pos['result'][0]/displayWidth,pos['result'][1]/displayHeight)

上述代码中,s1.png是用uiautomator2的截图命令截取的。

d.screenshot('s1.png')

 

s2.png为其中的一部分图片(这是要自己设定的),如图:

注意:提取s2.png的时候,一定要使用画图板打开s1.png,然后比例是100%的时候,再裁切得到s2.png,否则会有意想不到的错误(找不到图片,pos返回None)。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/643244
推荐阅读
相关标签
  

闽ICP备14008679号