【问题标题】:Classify a program from a screenshot从屏幕截图中分类程序
【发布时间】:2011-09-16 09:09:54
【问题描述】:

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

目标是确定“A”中的哪个屏幕截图与“B”处于相同状态。

示例截图:

基于此屏幕截图的示例:
输入: 来自该程序的 10 个屏幕截图,其中选择了“菜单”、“销售订单”、“采购订单”...标签
B 输入:上面的截图。

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

我曾尝试使用图像描述符算法 (SURF),但它的错误率非常高,因为它不适合此类任务。

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

【问题讨论】:

  • 图像有何不同?给定统一的颜色,您也许可以做一些简单的事情,比如测量蓝色(必填字段?)、白色(可编辑字段)和灰色(背景)。
  • egg candling 业务中获得启示,您或许可以通过比较图像的傅立叶变换来检测相似之处。你至少可以拒绝“臭鸡蛋”
  • @Jeff 图片可能非常相似,我怀疑简单的颜色计数是否可行(例如,某些按钮具有上下文相关的文本或可以禁用,这会改变它们的颜色)

标签: language-agnostic image-processing image-manipulation classification image-recognition


【解决方案1】:

我猜你可以使用标签宽度而不是标签标签,这样更容易计算。例如,{"Menu", "Sale Order", "Purchase Order"} 都有不同的宽度。

如果您必须查看选项卡内部,您可以尝试一些template matching

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 实际上你应该能够得到一个只有活动窗口的屏幕截图,这样就不需要注册了。
    • 检测文本是个好主意,但我尝试过的 OCR 库 (tesseract) 无法识别这么小的文本。 (如果字体大小为 >14 则它们很好)。我喜欢你的图标创意,我会考虑如何实现它。
    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 2020-09-12
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多