2

我需要编写和算法,可以根据屏幕截图来检测应用程序(用于填写表单)所处的状态。
它有2个输入:
- 答:从应用程序中选择不同的选项卡大约2-10截图。这些都是由用户制作的,所以我可以告诉他诸如“选择程序的上部区域”或“选择整个窗口”之类的东西,但我不能指望像素完美的精度。
B:这些状态之一的屏幕截图。表格中填充了不同的数据。从屏幕截图分类程序

目标是确定来自“A”的屏幕截图与“B”的状态相同。

的示例屏幕截图: example screenshot

基于该屏幕截图的例子:
A输入:来自此程序与 “菜单”, “销售订单”, “购买订单” 10截图,..选项卡选择
B输入:上面的截图。

任务是确定10个屏幕截图中的哪个与此图像匹配。

我试图使用图像描述符算法,(SURF),但它有一个非常高的错误率,因为它不是用于这样的任务。

任何人有一个想法如何做出这样的分类?我应该在屏幕截图上使用一些过滤器(例如中值或模糊),然后运行一些分类算法?或者提取一些其他特征来分类(FFT,直方图,..)?

+1

图像有何不同?考虑到统一的颜色,你可能可以做一些简单的事情,如测量蓝色(必填字段?),白色(可编辑字段)和灰色(背景)。 – 2011-06-16 13:18:06

+1

从* egg candling *商业中获得启示,您可以通过比较图像的傅里叶变换来检测相似性。您至少可以拒绝'烂蛋' – pavium 2011-06-16 13:23:07

+0

@Jeff图像可能非常相似,我怀疑简单的颜色计数是否可行(例如,某些按钮具有上下文相关文本或可以禁用,这会更改其颜色) – sydd 2011-06-16 14:36:08

回答

1

我想你可以使用标签宽度而不是标签,这是更容易计算。例如,{“菜单”,“销售订单”,“采购订单”}都有不同的宽度。

如果您必须查看标签页,您可以尝试一些template matching

1

检测每个选项卡的文本,然后查看背景颜色。 或者,找到用于像素级注册的菜单图标之一,然后进行逐点采样以确定选择了哪个选项卡。

+0

其实你应该可以得到一个只有活动窗口的截图,这会否定注册的需要。 – so12311 2011-06-16 16:05:51

+0

检测文本是一个好主意,但我尝试过的OCR库(tesseract)不好,这是一个很小的识别文本。 (如果字体大小> 14,它们很好)。我喜欢你的偶像想法,我会考虑如何实现它。 – sydd 2011-06-16 16:56:31