2011-06-24 51 views
5

我有興趣在Boggle板上識別字母,可能使用openCV。這些字母都是相同的字體,但可以旋轉,所以使用標準的文本識別庫是一個問題。此外,M和W具有區分它們的下劃線,而Q實際上是一個曲。 我相當有信心,我可以隔離圖像中的單獨字母,我只是想知道如何做識別部分。識別圖像中的boggle/scrabble字母

回答

6

這取決於你需要多快。 如果你可以隔離信的平方和旋轉它,這樣的廣場包含字母兩側是水平和垂直的話,我會建議你:

  • 的圖像轉換爲黑/白(用字母一種顏色和另一種模具其他
  • 使所有四種可能方向(即直立和旋轉90,180和270度)的所有字母的參考圖像的數據集
  • 使用模板匹配功能,例如cvMatchTemplate從每個新圖像的數據集中找到最匹配的圖像

這需要一點時間,所以優化是可能的,但我認爲它會給你一個合理的結果。 如果以正確的方向獲取它們很困難,您還可以即時生成新輸入的旋轉版本,並將它們與您的參考數據集進行匹配。

,如英文字母有不同規模的話,我能想到的兩個選項:

  • 如果方向是不是一個問題(即你的驚奇塊檢測也可以把塊在正確的方向),那麼你可以使用該區域的邊界框以字母顏色作爲傳入圖片比例尺的粗略指示符,並將比例尺與參考圖像上的邊界框尺寸相同(對於每個參考圖像,這可能會有所不同)
  • 如果方向是一個問題,然後添加縮放作爲您的搜索空間的參數。因此,您可以搜索所有旋轉角度(0-360度)和所有合理的尺寸(您應該可以從您的圖像中猜出合理的範圍)。
+0

這是否適用於不同尺寸/縮放圖像的圖像?即如果相機離瓷磚更近或更遠? – eggbert

+0

我更新了你的問題的答案。 –

4

您可以使用簡單的OCR,如Tesseract。它使用簡單,速度相當快。你必須做4次輪換(正如@jilles de wit的回答中所提到的)。

2

我做了一個iOS應用程序,基於OpenCV做到了這一點。它被稱爲SnapSolve。我寫了關於檢測如何工作的blog。 基本上,我將所有26x4可能的字母+旋轉覆蓋在每個形狀上,並查看哪個字母重疊最多。對此進行一些調整,以平滑疊加圖像,以消除文字幾乎重疊但不完全的文物。

+0

我沒看過我的項目幾年,但非常有趣的文章,謝謝。關於在javacsript中使用它的博客鏈接也很有趣。 – eggbert