监控新的页面 ui 是否发生改变,本文只是提供一种差异对比的实现思路。
页面控件识别
通过 opencv 识别页面的轮廓,基于轮廓信息合并重合的控件,框选标注识别控件。(基于这个实现也可以实现 app 端页面的深度遍历)
生成页面布局
基于识别的控件位置以填充的方式生成布局图。
页面差异识别
对基线布局图 p0 和当前的布局图 p1 进行差值运算生成新的布局差异图 p3,如果布局差异图 p3 中的控件位置完全存在于 p0 或者 p1 中,那么这些控件就是新增/减少的;
注意点
对于变化的区域(类似广告位),需要增加页面的忽略区域,在页面处理的过程中需要将该区域全部替换为空白区域;如果不是全页面区域监控,可以只关心 roi 区域的差异。