轉:關於使用ImageMagick和Tesseract進行簡單數字圖像識別

聽說Tesseract但是世界排名第三的OCR神器,2010年又更新了3.0版本。Tesseract原先是HP寫的,如今Open Source了。chrome

 

下面介紹怎麼用Tesseract配合ImageMagick進行簡單的數字圖像識別。google

 

首先Tesseract只能識別bmp,tif,因此先拿ImageMagick轉換一下圖像。注意得無壓縮轉換,不然Tesseract報錯。spa

convert -compress none ./pict.gif./in1.tifcode

而後將圖片灰度化-colorspace Gray,或者直接二值化-monochrome成黑白,這樣識別率會高一點。圖片

接下來裁剪出想要進行精確識別的部分:-crop widthxheight+x+yget

好比-crop 320x40+0+1,從左上角開始座標爲(0,1)處,裁剪出320*40大小的圖像。注意參數裏是英文字母x,不是乘號*。效率

 

還有就是網上搜到的-depth 8和-alpha off參數,實踐代表加不加效果不大。im

一步完成就像這樣:英文

convert -compress none-depth 8 -alpha off -crop 535x24+2+2 -monochrome ./pict.gif ./in1.tifimg

 

預處理完以後最好再放大一下,此次的樣例放大到500%~600%的識別效率就能使人滿意。

convert ./in1.tif -scale600% ./in2.tif

 

而後就能夠開始用Tesseract進行識別了。

tesseract ./in2.tif ./1-l eng -psm 7

 

-l eng是選擇語言,-psm 7是說源圖像是隻在一行上的文字。具體說明看Tesseract的幫助。

 

下面就是一些實例。

原圖以下:


下面是二值化以後的效果,能夠看見仍是有些噪點的。


下面是灰度化以後的效果。


識別以後的結果是:

05093519038515450004738373775251263J91648J94318529731857

能夠看到有些誤報,針對這個問題又特殊處理一下誤報字符,結果識別率在90%左右



參考資料:

ImageMagick: http://www.imagemagick.org

Tesseract: http://code.google.com/p/tesseract-ocr

相關文章
相關標籤/搜索