现在遇到了电影院选座的问题,选座的控件是自绘的拿不到任何其他控件。目前只能通过 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 自动化。
组合不同座位的分布信息,就可以得到上面我说的整体座位信息矩阵。分类的话就是按模板来的,匹配什么模板,就对应什么分类信息
涉及坐标变化,通常坐标变化都是有规律的,操作完之后记录整体的坐标变化量或者复位之后再继续操作也行。
可能还涉及不同设备的兼容性问题 (用图像识别都会遇到这个问题),先搞定上面的问题再看吧
这个方案能解决问题,就是需要对图像处理和识别比较熟练。
记录第一列第一行座位的坐标,假设是 100,100, 那么第一列第二行就可能是 110,100,第二列第一行可能是 100,110.。。。。。。只要记录一个坐标,还有座位像素大小,就可以推算出其他座位的位置,不难吧
谢谢,公司有搭建的图像匹配,但是识别不了,或许是可信度调的高。之前我了解到图像识别好像识别不了颜色的吧,如果要选特定价位的座位呢。
你好,能看看这个控件的元素吗?
这种合适做 UI 自动化吗?
为啥不直接传座位号呢,走 UI 自动化是出于什么考虑
airtest 工具的截图识别可以吗?
这种业务场景,会经常变,今天 39,42 特价是一个样式,明天可能 xx 活动又是一个样式,你的 UI 脚本维护跟不上就跑不过去,但是这又不是程序的 bug,想不出来你这么设计的目的,或者说你接入 AI 测试的方式去让机器学习去跑这种 case?
先任意的点,再取消,算出特性指标??