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

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记-uiautomator2截图点击,OpenCV找图相关的知识,希望对你有一定的参考价值。

对应的代码如下:

import time

import uiautomator2 as u2
import cv2
import numpy as np

d = u2.connect_usb("6e0bc87e")

displayWidth = d.info['displayWidth']
displayHeight = d.info['displayHeight']


if __name__ == '__main__':
    d.screenshot('pic/1.png')
    img_rgb = cv2.imread('./pic/1.png')
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
    template = cv2.imread('./template/finger2.png', 0)

    res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
    threshold = 0.7

    loc = np.where(res >= threshold)



    for pt in zip(*loc[::-1]):
        print(pt[0] / displayWidth, pt[1] / displayHeight)
        d.click(pt[1] / displayHeight, pt[0] / displayWidth)
        time.sleep(0.3)

        pass

    pass

结构如下:

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

这里有个要注意的地方:

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

可以通过

d = u2.connect_usb("6e0bc87e")

displayWidth = d.info['displayWidth']
displayHeight = d.info['displayHeight']

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

 

以上是关于Python笔记-uiautomator2截图点击,OpenCV找图的主要内容,如果未能解决你的问题,请参考以下文章

安卓自动化工具程序设计之[识别区域提取] python + uiautomator2 + Open CV

安卓自动化工具程序设计之[识别区域提取] python + uiautomator2 + Open CV

安卓自动化工具程序设计之[识别区域提取] python + uiautomator2 + Open CV

python+uiautomator2 app自动化

python+uiautomator2+fiddler 自动化测试项目总结

Python短视频大法?通过uiautomator2实现某音主播数据获得