Tesseract训练识别数字

本文详细介绍了如何使用Tesseract OCR和jTessBoxEditorFX工具进行数字识别的训练流程,包括软件环境搭建、素材准备、训练步骤及C#应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、软件环境

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.youkuaiyun.com/jianglei1310446/article/details/77572435

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值