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

據說Tesseract可是世界排名第三的OCR神器,2010年又更新了3.0版本。Tesseract原先是HP寫的,現在Open Source了。

 

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

 

首先Tesseract只能識別bmp,tif,所以先拿ImageMagick轉換一下圖像。注意得無壓縮轉換,否則Tesseract報錯。

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

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

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

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

 

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

一步完成就像這樣:

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

 

預處理完之後最好再放大一下,這次的樣例放大到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

發佈了42 篇原創文章 · 獲贊 4 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章