2009-08-26 21 views
3

我正在使用Tesseract OCR(通過pytesser)和PIL(Python圖像庫)來自動測試應用程序。如何爲OCR軟件提供最佳成功機會?

我檢查顯示的文字是好的,通過製作截圖並獲取文本感謝tesseract。

我在開始時遇到了一些問題,由於PIL的雙三次插值,我增加了屏幕截圖的大小,所以似乎效果更好。

不幸的是,我仍然有一些錯誤,比如'0'和'O'之間的混淆。我可以想象,未來我會有其他類似的問題。

我想知道是否有一些技術來準備圖像,以幫助OCR。任何想法都歡迎。

預先感謝

+0

如果這個問題仍然是相關的:這必須是正方體? OCR引擎(例如ABBYY)非常適合低質量的輸入圖像,並自動爲您執行圖像預處理。有一個用於OCR的REST API,它使用位於http://www.wisetrend.com/wisetrend_ocr_cloud.shtml的ABBYY引擎 - 它有免費試用版,因此您可以自己嘗試一些圖片 – 2010-11-09 17:03:54

回答

1

無恥的插頭與免責聲明:my company包正方體用於.NET

正方體是一個不錯的OCR引擎。它可能會錯過很多東西,很容易被非文字混淆。你可以做的最好的事情是確保它只有文本。接下來最好的事情是給它一些理智的二值化(自適應或動態閾值到達那裏)或灰度,並讓它嘗試進行二值化。

+0

我同意這一點。它被對話框邊緣弄糊塗並轉換爲'I'。當它獲取純文字圖像時,它會變得很好。二值化也是一個好主意。謝謝。 – luc 2009-08-27 07:01:07

0

對於0和O之間進行區分,一個簡單的解決方案是選擇兩個區分的字體(例如:0在其中間破折號或點)。你的應用程序可以接受嗎?

另一種解決方案是在對文本進行逐字符分析之後應用基於字典的步驟 - 將識別的文本提供給某種形式的拼寫檢查器或驗證器以區分難字符。

例如,一個圓形符號後跟其他數字最可能是零,而相同的符號後跟字母最有可能是大寫字母o。這是一個微不足道的例子,但它顯示瞭如何創建更可靠的OCR系統所需的上下文。

+0

不幸的是,我沒有控制字體。你能否再詳細解釋一下基於詞典的步驟? – luc 2009-08-26 15:49:28

0

即使在最好的條件下,OCR變種也會潛入你的身邊。您最好的選擇是設計您的測試以瞭解它們。

1
  1. 火車正方體認識到你的字體
  2. 製作圖像的額外清潔和周圍的字符足夠的空間
  3. 利潤:)

下面是一些真實的例子。

  • 第一張圖片是原始圖像(croped功率計的數字)
  • 第二圖像稍微清理圖像在GIMP,大約50%的OCR準確性正方體
  • 第三圖像完全清除後圖像 - 100%OCR沒有任何培訓的認可!

enter image description here enter image description here enter image description here

相關問題