程序员开发实例大全宝库

网站首页 > 编程文章 正文

Tesseract 一键生成字库(tesseract报错)

zazugpt 2024-08-22 04:39:05 编程文章 15 ℃ 0 评论

1.在Tesseract中训练字库的时候非常麻烦,输的指令又多,而且容易出错!于是就想着把字库生成的指令整合起来,在MFC上进行实现!程序界面如下:

原来训练字库的步骤可以参考本博客中的Tesseract-OCR 训练自己的中文字库,从步骤可知,只能从第5步开始写起,前面的生成tif格式的文件,生成.box文件,进行识别纠正这三步只能手动执行了!

2.从控制台上手动输出生成指令可知(不太明白的朋友可以根据结合指令看下,高手路过...),生成字库时要通过cmd指令进入到Tesseract的安装目录,因为训练生成过程中用到的程序是在Tesseract的安装目录中,所以写出来的程序要么就拷贝到Tesseract的安装目录上运行,要么就在生成命令中加上完整的路径,我偷下懒,就采用了前者的方式!

3.以下就列举下程序中遇到的一些问题:

A.重命名unicharset、inttemp、pffmtable、shapetable、normproto这五个文件失败,如下图:

调试下程序,发现程序代码书写时对的,猜想是权限问题,结果重新以管理员身份运行程序,更名成功了!但是又遇到另一个问题,详情看B!

B.文件是有的,但是就是更名失败,唯独就只有一个normproto!排除了重命名代码的问题,猜想因为训练指令生成需要时间,可能是由于在执行重命名的时候normproto文件还没有生成成功,它是在执行重命名的代码之后才生成出来的!于是就在重命名改文件名之前sleep了一下,结果发现成功了!

C.定义字体特征文件(font 0 0 0 0 0 )中的字体名称输入有误的时候,会出现以下错误:

这个要从.box文件中进行截取,保持一致:

D. .BOX文件的命名需要有一定的规则(下面图片是某博客的命名说明!),格式如下:

[lang].[fontname].exp[num].tif 。其中 其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义! 例如:chi.myself.exp0.tif word.font.exp0.tif (为了程序处理方便,在程序中.tif的文件的命名格式我也要求跟.box文件的命名格式一样!)

E.如果生成失败,建议将指令运行间隔时间调整大点再重新试下!

F.最终生成及测试结果如下图,已在其他电脑上试过,可用:

程序环境:

1.VS2013 + Tesseract-Ocr 3.02.02 + Win7 旗舰版 64位

2.拷贝到其他电脑上测试可用;

3.工具下载(亲测可用):Tesseract 一键生成字库

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表