嘿大家, 我想創建一個Java程序,可以讀取屏幕的數字,也可以識別屏幕上的圖像。我想知道我該如何實現這一目標? 數字的字體將始終相同。我從來沒有編寫過這樣的程序,但我的想法是讓程序截取屏幕截圖,然後用截圖圖像部分覆蓋數字圖像並檢查它們是否匹配,並對每個數字重複此操作。如果這是做到這一點的正確方法,我將如何把它放在代碼中。光學字符識別
預先感謝任何幫助。
嘿大家, 我想創建一個Java程序,可以讀取屏幕的數字,也可以識別屏幕上的圖像。我想知道我該如何實現這一目標? 數字的字體將始終相同。我從來沒有編寫過這樣的程序,但我的想法是讓程序截取屏幕截圖,然後用截圖圖像部分覆蓋數字圖像並檢查它們是否匹配,並對每個數字重複此操作。如果這是做到這一點的正確方法,我將如何把它放在代碼中。光學字符識別
預先感謝任何幫助。
你總是可以訓練神經網絡爲你做。有時候他們可以非常準確。如果你使用類似Matlab的東西,它實際上已經具備了這些功能。顯然有一個Java的神經網絡庫(http://neuroph.sourceforge.net/),雖然我從來沒有親自使用它。
這裏有一個關於使用neuroph教程:http://www.certpal.com/blogs/2010/04/java-neural-networks-and-neuroph-a-tutorial/
您可以使用神經網絡,支持向量機,或者其他機器學習構建此。但它不會完成整個工作。如果你做一個屏幕截圖,你將剩下一個非常大的圖像,你需要找到個人角色。您還需要處理這樣一個事實,即相機可能不會直接指向您要閱讀的文本。您可能需要使用一系列算法鎖定圖像的右側部分,然後以大小變爲中性的方式對其進行縮減採樣。
這是我編寫的一個簡單的Java小程序,它執行一些操作。
http://www.heatonresearch.com/articles/42/page1.html
它可以讓你在一個比較大的區域繪製和你的焦炭鎖定英寸然後它承認它。我正在使用字母表,但數字應該更容易。包含完整的Java源代碼。
一個更簡單的方法可以是使用模板匹配。如果字體相同,和/或大小(以像素爲單位)已知,那麼簡單的模板匹配可以爲您完成這項工作。如果輸入的大小未知,則可能必須創建不同比例的圖像副本,並在每個比例下進行匹配。 其中一個具有極值(最高或最低取決於您遵循的模板匹配方法)是您的結果。 Follow this link for details