zoukankan      html  css  js  c++  java
  • 转:关于使用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

  • 相关阅读:
    兑奖
    杨辉三角
    偶数求和
    进制转化
    填词
    等值数目
    Spring框架的七个模块
    数据库中的第1、2、3范式 (昨天没睡好,因为那个蚊子~~)
    关于eclipse 不编译或者找不到*.class的问题
    servlet生命周期的理解
  • 原文地址:https://www.cnblogs.com/dancheblog/p/4775129.html
Copyright © 2011-2022 走看看