先下载Tesseract4.0版本进行安装。
1.tesseract简单使用:
打印1.png中的文字以中文的形式到1.txt,编码形式默认为utf-8。
tesseract 1.png -l chi_sim stdout 1
打印1.png中的文字以中文的形式到命令行,但中文会出现乱码。因为格式是utf-8,而命令行中读取文本是以ansi编码读取。
tesseract 1.png -l chi_sim stdout
2.tesseract训练:
1.安装 jTessBoxEditor,需要安装jdk-17_windows-x64_bin.exe环境才能运行。
2.png转为tif文件,这样才可以被 jTessBoxEditor box editor打开。
3.打开后是没有识别文字的,所以我们要先创建box文件再打开。
创建1.tif名为1的box文件,-l指定识别文字的语言为chi_sim中文:
tesseract 1.tif 1 -l chi_sim batch.nochop makebox
4.使用BoxEditor的open选项打开1.tif文件,会发现自动帮你用中文识别了。当然会很多不准确,这时需要自己手动逐个校正文字后保存。
5.保存后生成特征文件,后面合并要用。
- 生成tr文件
tesseract 1.tif 1 nobatch box.train
- 生成Character集合文件
unicharset_extractor 1.box
- 创建字体特征文件
echo name 0 0 0 0 0 >font_properties
- 生成shape文件
shapeclustering -F font_properties -U unicharset -O 1 1.tr
- 生成聚集字符特征文件
mftraining -F font_properties -U unicharset -O 1 1.tr
- 生成字符正常化特征文件
cntraining 1.tr
6.合并上面创建的六个中,除font_properties文件的剩下五个文件。
首先给那五个文件名字加上前缀,比如加test:
for %a in (normproto pffmtable shapetable unicharset inttemp) do ren %a test.%a
然后再合并,刚刚前缀加的test,所以我们参数是test.:
combine_tessdata test.
完成后就生成一个test.traineddata的语言文件了,放Tesseract-OCR\tessdata语言文件夹下。到时候用就指定语言参数就好了,比如:
tesseract 1.png -l test stdout 1
这时候去看1.txt生成的内容就是你语言包训练出来的内容了!
参考文献:
Tesseract如何直接将识别结果输出到命令行
利用jTessBoxEditor工具进行Tesseract-OCR样本训练
使用Tesseract训练图片的方法
Tesseract-OCR-04-使用 jTessBoxEditor 提高文字识别准确率
Tesseract-OCR的简单使用与训练
Tesseract-OCR命令行使用