现在遇到了电影院选座的问题,选座的控件是自绘的拿不到任何其他控件。目前只能通过 RGB 的方式实现了选空座,但不能按照指定的要求去选座(比如有 39、42 元的区域等,情侣座等)这些都没法去判断,图像识别 也试过不行。
大家有什么好的思路吗?先谢谢了
问题的核心还是在于拿不到控件信息吧,用图像识别的多模板匹配是可以做到获取控件信息的。
只要实现这样一个函数,就可以解决问题,
输入:座位截图
输出:座位信息矩阵
[
[Seat(), Seat(), Seat(), Seat(), Seat()],
[Seat(), Seat(), Seat(), Seat(), Seat()],
[Seat(), Seat(), Seat(), Seat(), Seat()],
[Seat(), Seat(), Seat(), Seat(), Seat()],
]
Seat 类里面包含了座位的是否可选、价格、类型等信息
突然想到自绘的话也是从后端接口拿的数据,可以先请求后端座次信息接口,再计算对应坐标点,通过坐标的方式操作控件。
好题目
是否可以先把区域切块,然后在选座位区域在根据坐标计算去点击?
这种情况我个人能想到的就还是多模板匹配了,个人比较擅长用图像识别的方式做 UI 自动化。
组合不同座位的分布信息,就可以得到上面我说的整体座位信息矩阵。分类的话就是按模板来的,匹配什么模板,就对应什么分类信息
涉及坐标变化,通常坐标变化都是有规律的,操作完之后记录整体的坐标变化量或者复位之后再继续操作也行。
可能还涉及不同设备的兼容性问题 (用图像识别都会遇到这个问题),先搞定上面的问题再看吧
这个方案能解决问题,就是需要对图像处理和识别比较熟练。
你好,能看看这个控件的元素吗?
这种合适做 UI 自动化吗?
为啥不直接传座位号呢,走 UI 自动化是出于什么考虑
airtest 工具的截图识别可以吗?
这种业务场景,会经常变,今天 39,42 特价是一个样式,明天可能 xx 活动又是一个样式,你的 UI 脚本维护跟不上就跑不过去,但是这又不是程序的 bug,想不出来你这么设计的目的,或者说你接入 AI 测试的方式去让机器学习去跑这种 case?
先任意的点,再取消,算出特性指标??
记录第一列第一行座位的坐标,假设是 100,100, 那么第一列第二行就可能是 110,100,第二列第一行可能是 100,110.。。。。。。只要记录一个坐标,还有座位像素大小,就可以推算出其他座位的位置,不难吧
谢谢,公司有搭建的图像匹配,但是识别不了,或许是可信度调的高。之前我了解到图像识别好像识别不了颜色的吧,如果要选特定价位的座位呢。