我想弄清楚在C#中使用Sikuli圖像識別的方法。我不想使用Sikuli本身,因爲它的腳本語言有點慢,因爲我真的不想在我的.NET C#應用程序中引入java橋。在屏幕上查找字段位置的屏幕區域識別
所以,我有一個位圖,它代表了我的屏幕區域(我將稱之爲該區域BUTTON1)。屏幕布局可能稍微有所變化,或者屏幕可能已在桌面上移動 - 因此我無法使用直接位置。我必須首先找到BUTTON1的當前位置位於現場屏幕內的位置。 (我試圖發佈此圖片,但我想我不能,因爲我是一個新用戶...我希望描述清楚...)
我認爲Sikuli在封面下使用OpenCV 。由於它是開源的,我想我可以對其進行逆向工程,並找出如何在OpenCV中完成它們,在Emgu.CV中實現它 - 但是我的Java並不強大。
我尋找的例子顯示了這一點,但所有的例子要麼非常簡單(即如何識別停車標誌)或非常複雜(即如何做面部識別)......也許我只是密集,但我似乎無法在如何做到這一點的邏輯上跳躍。另外我擔心所有各種圖像處理例程實際上都是處理器密集型的,我真的希望它儘可能輕量級(實際上我可能會在屏幕上找到很多按鈕和字段.. 。)
所以,我想這樣做,而不是方法是:
A)轉換的位圖字節數組和做蠻力搜索。 (我知道如何做那部分)。然後
B)使用我發現的字節數組位置來計算它的屏幕位置(我真的不完全確定我是怎麼做的),而不是使用圖像處理的東西。
這是完全瘋了嗎?有沒有人有一個簡單的例子,說明如何使用Aforge.Net或Emgu.CV來做到這一點? (或如何充實上面的步驟B ...?)
謝謝!
+1真棒問題 - 我希望有人會有一個很好的答案! – Charles 2011-05-26 15:12:15