ocr python tesseract训练_Python训练Tesseract-OCR字库的批处理bat代码

运行环境:windows7及以上x64、 安装了Tesseract-OCR工具、安装了jTessBoxEditorFX训练工具
python
1、首先,用批处理代码美化一下窗口界面
2、第二步,选择指令的运行模式,请选择操作项目:
3、找到要爬取的网站的验证码网址,粘贴到echo driver.get('【网站验证码网址】')>>getCodeFormLLSQ.py中
4、完成后,把代码开始和代码结束中的内容复制,粘贴到文本文件中,然后把文本文件改名为“字符训练.bat”就可以了
5、在当前文件所在目录,按下Shift + 鼠标右键,选择【在此处打开cmd窗口】,输入指令“start 字符训练.bat”,按照提示进行操作就可以了。
代码
//代码开始
@echo off
::窗口标题
title 窗口标题
::改变背景色、文字颜色
color 0A
::改变窗口大小
mode con cols=80 lines=25
echo 欢迎使用jTessBoxEditorFX训练Tesseract-OCR教程
:main
echo 请选择操作项目:
echo 1. 进入字库训练模式;
echo 2. 进入新字库测试模式;
set /p input=请输入数字1或2:
if "%input%"=="1" goto A
if "%input%"=="2" goto B
:A
echo 按任意键进入第1步&pause>nul
echo=
echo 1.批量获取要登录网站的验证码,可以用Python来爬取
echo 以下为爬取某某网站网站验证码的Python代码,
echo 注意事项:
echo (1)爬取前需要安装好webdriver、pytesseract,根据提示,缺少什么就安装什么
echo (2)使用webdriver.Firefox()时,需要安装Firefox即火狐浏览器
echo (3)需要下载geckodriver.exe对应Python的版本,并且复制到Python37安装的根目录
echo=
echo 2.完成以上操作后,按任意键开始在当前目录%~pd0生成名字为getCodeFormLLSQ.py的文件&pause>nul
echo from selenium import webdriver>getCodeFormLLSQ.py
echo from PIL import Image>>getCodeFormLLSQ.py
echo import pytesseract>>getCodeFormLLSQ.py
echo=>>getCodeFormLLSQ.py
echo driver=webdriver.Firefox()>>getCodeFormLLSQ.py
echo driver.get('网站验证码网址')>>getCodeFormLLSQ.py
echo driver.implicitly_wait(10)>>getCodeFormLLSQ.py
echo=>>getCodeFormLLSQ.py
echo for i in range(0,100):>>getCodeFormLLSQ.py
echo driver.find_element_by_id('imgCheckCode').click()>>getCodeFormLLSQ.py
echo driver.save_screenshot(r'%~pd0codefile\code_full.png')>>getCodeFormLLSQ.py
echo href=driver.find_element_by_xpath('//*[@id="imgCheckCode"]')>>getCodeFormLLSQ.py
echo left = href.location['x']>>getCodeFormLLSQ.py
echo top = href.location['y']>>getCodeFormLLSQ.py
echo elementWidth = href.location['x'] + href.size['width']>>getCodeFormLLSQ.py
echo elementHeight = href.location['y'] + href.size['height']>>getCodeFormLLSQ.py
echo picture = Image.open(r'%~pd0codefile\code_full.png')>>getCodeFormLLSQ.py
echo picture = picture.crop((left, top, elementWidth, elementHeight))>>getCodeFormLLSQ.py
echo picture.save(r'%~pd0codefile\\'+str(i)+'.png')>>getCodeFormLLSQ.py
echo 已经在当前目录%~pd0生成getCodeFormLLSQ.py文件,可根据需要自行修改
echo=
echo 3.按任意键开始执行getCodeFormLLSQ.py批量获取网站验证码到%~pd0codefile\目录下&pause>nul
mkdir codefile
python getCodeFormLLSQ.py
echo 验证码获取完成,请到%~pd0codefile\目录查看
echo=
echo 4.请使用jTessBoxEditorFX将爬取的验证码合并到一个tif格式的文件中,命名格式为ec.ufont.exp0.tif&pause>nul
echo=
echo 5.按任意键开始执行指令生成.box文件&pause>nul
:tesseract ec.ufont.exp0.tif ec.ufont.exp0 batch.nochop makebox(默认字库)
tesseract ec.ufont.exp0.tif ec.ufont.exp0 -l @toss batch.nochop makebox
echo 6.请使用jTessBoxEditorFX对字库进行修正并保存&pause>nul
echo=
echo 7.按任意键开始产生字符特征文件 ec.ufont.exp0.tr文件&pause>nul
:tesseract ec.ufont.exp0.tif ec.ufont.exp0 -psm 7 nobatch box.train
tesseract ec.ufont.exp0.tif ec.ufont.exp0 nobatch box.train
echo=
echo 8.按任意键开始计算字符集(生成unicharset文件)&pause>nul
unicharset_extractor ec.ufont.exp0.box
echo=
echo 9.按任意键开始生成名称为font_properties的字体特征文件&pause>nul
echo ufont 0 0 0 0 0 >font_properties
echo=
echo 10.按任意键开始聚集字符特征,生成shapetable文件&pause>nul
shapeclustering -F font_properties -U unicharset ec.ufont.exp0.tr
echo=
echo 11.按任意键开始聚集字符特征,生成inttemp和pffmtable文件&pause>nul
mftraining -F font_properties -U unicharset -O unicharset ec.ufont.exp0.tr
echo=
echo 12.按任意键开始聚集字符特征,生成normproto文件&pause>nul
cntraining ec.ufont.exp0.tr
echo=
echo 13.按任意键开始给字符特征文件的名字加上@toss.前缀&pause>nul
rename unicharset @toss.unicharset
rename inttemp @toss.inttemp
rename pffmtable @toss.pffmtable
rename shapetable @toss.shapetable
rename normproto @toss.normproto
echo=
echo 14.按任意键开始生成自定义字库@toss&pause>nul
combine_tessdata @toss.
echo=
echo 15.请手动复制该字库到环境变量“TESSDATA_PREFIX”对应的目录中&pause>nul
goto mian
:B
echo=
echo 16.使用%~pd0codefile\目录下的图片进行测试
set /p i="请输入用于测试字库的图片编号:"
tesseract .\codefile\%i%.png out -l @toss
start codefile\%i%.png
for /f %%j in (out.txt) do echo %%j
goto B
rem tesseract也提出,通过使用多个语言训练库联合使用。如此,新的字体训练库也可以与原有的数据训练库联合使用。
rem 如参数 -l 之后 tesseract input.tif output -l eng+newfont。
//代码结束




更多推荐
所有评论(0)