上一篇介绍了TesseractOcr的用法,大家不懂得可以去看下
TesseractOcr 安装、使用、训练字库(基础详细版)_tesseract训练自己的字库-CSDN博客
这次直接讲解怎么进行多字裤合并并进行识别
1,我们先使用TesseractOcr生成两个box和tif文件,分别为num.font.exp0.box,num.font.exp1.box,num.font.exp0.tif,num.font.exp1.tif,还有一个font_properties
2,生成对应的tr文件,使用以下命令:
tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train
tesseract.exe num.font.exp1.tif num.font.exp1 nobatch box.train
3,生成unicharset文件
unicharset_extractor.exe num.font.exp0.box num.font.exp1.box
4,生成inttemp、pffmtable、shapetable文件
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr num.font.exp1.tr
5,生成normproto文件
cntraining.exe num.font.exp0.tr num.font.exp1.tr
6,对inttemp、pffmtable、shapetable、normproto重命名,前面都加上num.
7,生成字库traineddata
combine_tessdata.exe num.
最终文件夹里面的文件有以下:
到此字库已经完成合并,把num.traineddata复制到Tesseract-OCR下tessdata下,然后运行tesseract test.png output_2 -l num识别就可以了
如果想要更简单点的,可以直接使用bat一键合并字库,需要先准备好已经训练过的单个的tif和box文件,然后创建一个bat文件,输入以下内容:
@echo off
chcp 65001echo.
echo --------------开始批量生成tr文件--------------
echo.
for %%f in (*.tif) do (
tesseract "%%f" "%%~nf" nobatch box.train
)echo.
echo --------------开始生成unicharset文件--------------
echo.setlocal enabledelayedexpansion
set EXTRACTOR=unicharset_extractor.exe
set FILENAMES=
for /f "delims=" %%f in ('dir /b *.box') do (
set FILENAMES=!FILENAMES! "%%f"
)
%EXTRACTOR% !FILENAMES!
endlocalecho.
echo --------------开始生成inttemp、pffmtable、shapetable文件--------------
echo.setlocal enabledelayedexpansion
set EXTRACTOR=mftraining -F font_properties -U unicharset -O num.unicharset
set FILENAMES=
for /f "delims=" %%f in ('dir /b *.tr') do (
set FILENAMES=!FILENAMES! "%%f"
)
%EXTRACTOR% !FILENAMES!
endlocalecho.
echo --------------开始生成normproto文件--------------
echo.setlocal enabledelayedexpansion
set EXTRACTOR=cntraining.exe
set FILENAMES=
for /f "delims=" %%f in ('dir /b *.tr') do (
set FILENAMES=!FILENAMES! "%%f"
)
%EXTRACTOR% !FILENAMES!
endlocalecho --------------normproto、inttemp、pffmtable、shapetable统一前缀--------------
rename normproto num.normproto
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename shapetable num.shapetableecho.
echo --------------开始生成traineddata字库文件--------------
echo.
combine_tessdata.exe num.echo.
echo --------------执行完成--------------
pause
执行该文件,一键合并字库