一、软件环境

1.安装Tesseract 3.0.2

Github上找到 Tesseract ,安装 windows下的版本(无需源代码)

2.安装jTessBoxEditorFX训练工具

    需要JDK1.8

二、训练前需要准备的素材

1.多张包含数字的图片
  d盘新建一个文件夹 number, 将图片放入其中,(白底黑字,图片大小恰好包含数字,一张可包含多个数字,一般一个图片包含1234567890.,并且是一种字体)

三、开始训练

1. 新建一个名为 font_propertities 的文本文件
               里面内容为 normal 0 0 0 0 0 
              (normal代表字体名)
2. 用jTessBoxEditorFx将多个图片合并成一个包含多页图片的tif文件
            合成的文件取名为 number.normal.exp2.tif

点Tools->Merge,选择图片

3. 创建Box文件
          cd d:\number
          tesseract number.normal.exp2.tif number.normal.exp2 -l eng batch.nochop makebox
          这里的eng是默认的语言,当我们创建好自己的number语言后,以后再次重新训练可以改成number,也就是:

tesseract number.normal.exp2.tif number.normal.exp2 -l number batch.nochop makebox

4. jTessBoxEditorFx打开Box文件
           打开后,查看识别的结果,并纠正错误,保存

在这里插入图片描述

5. 根据BOX文件和tif文件生成特征文件
     命令行 执行如下命令(可放入一个.bat文件便于执行)
      tesseract number.normal.exp2.tif number.normal.exp2  nobatch box.train

      unicharset_extractor number.normal.exp2.box

      shapeclustering -F font_properties -U unicharset number.normal.exp2.tr

      mftraining -F font_properties -U unicharset -O unicharset number.normal.exp2.tr

       cntraining  number.normal.exp2.tr

  执行完毕,将生成5个文件
  inttemp  normproto  pffmtable  shapetable   unicharset
6. 生成最终语言文件
  将以上五个文件前面都改名,前面加上 number.

此时文件夹如上
然后,命令行执行

combine_tessdata number.

就会生成 number.traineddata, 将其拷贝的tesseract 执行目录的tessdata下

tessedata文件夹

6. 通过命令行验证训练结果

tesseract number.normal.exp2.tif output -l number

执行后,执行结果在output.txt里

以上过程可以反复执行,不断修正精确度

四. 在c# 中使用

1.引入
          nuget引入 tesseract ,2.41版(为何使用低版本?2.41以上版本,无法在xp下使用,使用时报错,找不到libtesseract304.dll文件,事实上文件都在那里,而且需要的vc runtime 都装上了)   
          tesseract 2.41 依赖于vc++ runtime 2012 ,如果不安装,会报错找不到dll文件
2.代码
a.初始化

初始化代码

b.识别

识别前先二值化(转换成白底黑字),然后识别

参考:

https://blog.csdn.net/jianglei1310446/article/details/77572435

GitHub 加速计划 / te / tesseract
60.1 K
9.29 K
下载
tesseract-ocr/tesseract: 是一个开源的光学字符识别(OCR)引擎,适用于从图像中提取和识别文本。特点是可以识别多种语言,具有较高的识别准确率,并且支持命令行和API调用。
最近提交(Master分支:2 个月前 )
bc490ea7 Don't check for a directory, because a symbolic link is also allowed. Signed-off-by: Stefan Weil <sw@weilnetz.de> 4 个月前
2991d36a - 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐