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