2012-08-12 52 views
6

我試圖從屏幕快照中檢測到幾個大寫字符。我將其轉換爲黑色和白色PIL,然後使用從PyTesser頁的代碼示例中,我在圖像上運行tesser.exe:pytesser的成功率很低?這是一個噪音問題,還是還有其他需要完成的事情?

from pytesser import * 
image = Image.open('fnord.tif') 
print image_to_string(image)  

我使用這個圖片:http://i.imgur.com/so419.png

但它不承認它是一個E,或者對於這個問題真的是任何東西。我認爲它是一個足夠乾淨的捕獲?頂部的噪音並沒有把它扔掉,對吧?

有什麼我失蹤了嗎?

+2

我運行命令行util顯示'Tesseract開放源碼OCR引擎v3.02與Leptonica' - 沒有'psm'選項 - 我得到一個空文件。使用'-psm 10'這被認爲是「把圖像當作一個單獨的字符」 - 我得到'%'後跟兩條換行符...... – 2012-08-12 18:00:21

+0

[限制字符tesseract尋找](http://stackoverflow.com/questions/2363490/limit-characters-tesseract-is-looking-for)在過去幫助過我。 – user500198 2012-09-01 18:15:35

+0

如果您試圖識別的大寫字符是在問題中顯示的明確的唯一字體類型中,那麼沒有太多理由依賴於tesseract。一些簡單的拓撲特徵和骨架信息可以直接解決這個問題。 – mmgp 2013-02-10 05:36:43

回答

1

如果您擔心噪聲是否成問題,請在MSPaint或其他類似工具中手動打開圖像,然後移除噪聲,然後通過OCR運行新圖像。這是瞭解OCR引擎如何工作以及如何混淆它,以及哪些沒有混淆的最好方法。每個OCR引擎的工作方式不同。

在這種情況下,可能會有一小部分噪音混淆字符分區過程。您應該檢查從OCR引擎返回的邊界框值,以查看OCR引擎是否正確查找您的單詞或字符的正確位置。

某些OCR引擎可以在OCR過程中從圖像中去除噪點。這通常被稱爲depspeckle或噪音消除。 Leptonica(http://www.leptonica.org)現在可以去除噪音,而現在它是最新的Tesseract圖像的一部分。

屏幕字體是OCR引擎的一大挑戰,因爲DPI通常非常低。在你的'E'的情況下,應該有足夠多的像素被識別。重擊重量可能會令引擎混淆。

此外,商業引擎通常比Tesseract更準確,但也會帶來昂貴的許可證費用。

相關問題