開源的命令行OCR軟件──tesseract

tesseract-ocr是一個跨平臺開源的OCR軟件(Optical Character Recognition,光學字符識別),它歷史悠久,早期是HP實驗室的項目,現托管google code。
大部分常用的linux發行版,應該都在源里包含了此軟件,所以ubuntu下只需要 sudo apt-get install tesseract-ocr tesseract-ocr-eng 就可以安裝了,注意必須安裝 tesseract-ocr-eng 這個是識別英文字符所必須的數據文件。而在ubuntu下,也只需要 emerge app-text/tesseract 就可以了,但是也必須給這個包添加 linguas_en 這個use,才會安裝所需要的數據文件。- R  I/ Q6 V  N- Y* Z# r
關于數據文件,還得交代一下,其實tesseract在2.0版以后,已經有了學習能力了,如果你想提高某個字體的識別率,或者識別不在默認語言包里的UTF-8字符(比如中文)的話,可以安裝這個方法來訓練出自己的數據文件。& W7 ?, @% i- L/ t' D: X
這個OCR軟件能干嘛呢?典型地應用就是識別驗證碼,哈哈。所以以這個為例,來介紹一下使用方法,先來看看這幾個驗證碼(可“圖片另存為”,然后自行測試):6 D; W: L7 G. s: H' Y4 y/ \

這幾個都是用默認的數據文件能正確識別的例子,由于tesseract只識別tiff格式的圖片文件,所以識別之前,需要將圖片先轉成tif格式,具體如下:
$ convert cnblogs.com.jpe ppm:- | ppm2tiff yzm.tif $ tesseract yzm.tif out Tesseract Open Source OCREngine $ cat out.txt 1750
* i' [/ G+ a' U
同時,也有些比較難的驗證碼,是程序不能正確識別的,如下幾個就是例子:

雖然識別的正確性不是非常高,但是已經很不錯了,哈哈。