AirtestProject Airtest 的多图查找与两图对比
fishfish-yu
·
2022年09月13日
·
最后由 Joo 回复于 2022年09月13日
·
7566 次阅读
「原创声明:保留所有权利,禁止转载」
此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
1. 前言
今天聊一下同学们经常问到的关于 Airtest 找图的 2 个问题,一个是,如何在 Airtest 里面做多图查找;另一个是,如何直接传入 2 张图片,然后计算他们的可信度。
2. 多图查找:find_all
这里的多图查找,指的是,一个画面中,存在多个相同/相似的图标,我们希望把他们都找出来,然后对所有的结果坐标进行操作。
举个最常见的例子,消消乐:
假设我们的目标是,找到 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
方法:
# -*- 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 还给我们提供了更多的方式,感兴趣的同学可以关注我们后续的推文~
Airtest 官网:https://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:117973773
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。