Airtest的多图查找与两图对比

简介: Airtest的多图查找与两图对比

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

今天聊一下同学们经常问到的关于Airtest找图的2个问题,一个是,如何在Airtest里面做多图查找;另一个是,如何直接传入2张图片,然后计算他们的可信度。

2. 多图查找:find_all

这里的多图查找,指的是,一个画面中,存在多个相同/相似的图标,我们希望把他们都找出来,然后对所有的结果坐标进行操作。

举个最常见的例子,消消乐:

image.png

假设我们的目标是,找到4个小黄鸡的坐标,然后对它逐一进行点击,那我们就可以使用Airtest提供的API,find_all 来完成:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
auto_setup(__file__)
results= find_all(Template(r"tpl1662624311911.png", record_pos=(-0.002, -0.178), resolution=(1080, 2520)))
print("--------------------------------")
print(results)
for i in range(0,4):
    touch(results[i]['result'])
    sleep(1.0)

find_all 给我们返回的结果是一个列表,列表里面包含了识别结果的字典,从字典的 result 键值中,我们可以拿到我们想要的坐标信息:

[{'result': (538, 1423), 'rectangle': ((490, 1363), (490, 1483), (587, 1483), (587, 1363)), 'confidence': 0.9852163195610046}, 
{'result': (301, 1186), 'rectangle': ((253, 1126), (253, 1246), (350, 1246), (350, 1126)), 'confidence': 0.9825006723403931}, 
{'result': (775, 1186), 'rectangle': ((727, 1126), (727, 1246), (824, 1246), (824, 1126)), 'confidence': 0.9197724461555481}, 
{'result': (249, 1894), 'rectangle': ((201, 1834), (201, 1954), (298, 1954), (298, 1834)), 'confidence': 0.7261688709259033}]

3. 两图对比

有部分特殊场景,我们需要对比截取好的2张图片的相似度,这时候我们可以用Airtest提供的 cal_ccoeff_confidence 方法:

image.png

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
from airtest.aircv.cal_confidence import *
auto_setup(__file__)
img1 = cv2.resize(cv2.imread(r"frog.png"),(85,100))
img2 = cv2.resize(cv2.imread(r"chick.png"),(85,100))
confidence = cal_ccoeff_confidence(img1,img2)
print("----------------")
print(confidence)

其中:

  • cv2.resize 用于统一图片尺寸,上图中的(85,100)为我们指定的目标尺寸
  • cv2.imread用于读取本地路径下的图片
  • cal_ccoeff_confidence用于对比两张图片的相似度,返回可信度的值

4. 小结

那今天的推文我们就简单聊了2个Airtest关于找图和图片对比的API,其实关于多图查找还有两图对比,Airtest还给我们提供了更多的方式,感兴趣的同学可以关注我们后续的推文~


AirtestIDE下载:airtest.netease.com/

Airtest 教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关文章
|
7月前
|
Web App开发 IDE 开发工具
为什么AirtestIDE的selenium Window突然无法检索控件了?
为什么AirtestIDE的selenium Window突然无法检索控件了?
|
4月前
Vscode——如何删除关键词所在行全部内容
Vscode——如何删除关键词所在行全部内容
37 0
|
7月前
|
Python
用Python实现批量下载文件
用Python实现批量下载文件
|
6月前
|
Python
Python实现用鼠标截图功能
Python实现用鼠标截图功能
|
7月前
|
API Python
Airtest结合Poco对控件实施精准截图,学起来!
Airtest结合Poco对控件实施精准截图,学起来!
|
7月前
|
Python
新手如何用Airtest实现在图片范围内随机点击?
新手如何用Airtest实现在图片范围内随机点击?
114 0
|
XML Java 程序员
WPF使用AvalonEdit实现代码高亮显示、搜索、替换功能
很多工程软件拥有自己定义的脚本语言,作为程序员用惯了具有高亮显示和智能提示功能的编辑器,所以针对特定的脚本自己开发一个编辑器。主要采用WPF、C#语言以及AvalonEdit控件。
WPF使用AvalonEdit实现代码高亮显示、搜索、替换功能
|
网络协议 安全
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
4604 0
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
|
Java Android开发 iOS开发
Airtest视频录制--续篇
Airtest视频录制--续篇
|
安全 Shell Android开发
Airtest输入文本那点事
Airtest输入文本那点事
931 0

热门文章

最新文章