关键词搜索

源码搜索 ×
×

Python笔记-uiautomator2截图点击,OpenCV找图

发布2021-09-14浏览2278次

详情内容

对应的代码如下:

  1. import time
  2. import uiautomator2 as u2
  3. import cv2
  4. import numpy as np
  5. d = u2.connect_usb("6e0bc87e")
  6. displayWidth = d.info['displayWidth']
  7. displayHeight = d.info['displayHeight']
  8. if __name__ == '__main__':
  9. d.screenshot('pic/1.png')
  10. img_rgb = cv2.imread('./pic/1.png')
  11. img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
  12. template = cv2.imread('./template/finger2.png', 0)
  13. res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
  14. threshold = 0.7
  15. loc = np.where(res >= threshold)
  16. for pt in zip(*loc[::-1]):
  17. print(pt[0] / displayWidth, pt[1] / displayHeight)
  18. d.click(pt[1] / displayHeight, pt[0] / displayWidth)
  19. time.sleep(0.3)
  20. pass
  21. pass

结构如下:

其中template是目标文件,OpenCV使用的是matchTemplate进行模板匹配找图。

这里有个要注意的地方:

uiautomator2中click输入的是比例,需要用当像素的宽 / 屏幕宽,当前像素长 / 屏幕长。这种,

可以通过

  1. d = u2.connect_usb("6e0bc87e")
  2. displayWidth = d.info['displayWidth']
  3. displayHeight = d.info['displayHeight']

这种方式获取屏幕的宽度和高度。

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载