用Tesseract训练验证码遇到的问题

Posted Jayson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Tesseract训练验证码遇到的问题相关的知识,希望对你有一定的参考价值。

1.准备验证码图片

 1 import os
 2 from urllib.request import urlretrieve
 3 
 4 urlPath=\'http://www.189.cn/portal/captcha/simple.do?date=1503125232339\'
 5 localPath=\'G:\\python_work\\chapter11\\captcha\'
 6 
 7 # 根据文件名创建文件
 8 def createFileByFileName(localPath,fileName):
 9     if not os.path.exists(localPath):
10         os.makedirs(localPath)
11     totalPath=localPath+\'\\\\\'+fileName
12     if not os.path.exists(totalPath):
13         file=open(totalPath, \'a+\')
14         file.close()
15         return totalPath
16 
17 # 根据图片的地址, 下载图片并保存在本地
18 def getAndSaveImg(imgUrl, filename):
19     if(len(imgUrl)!=0):
20         file=filename+\'.jpg\'
21         urlretrieve(imgUrl, createFileByFileName(localPath, file))
22 
23 # 下载图片
24 i=0
25 while i<100:
26     getAndSaveImg(urlPath, str(i))
27     i=i+1

2.将验证码图片转为灰度图 , 扩展名改为.tif

 1 import os
 2 from PIL import Image
 3 
 4 def getFileList(path):
 5     # 返回目录中所有jpg图像的文件名列表
 6     return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(\'.jpg\')]
 7 
 8 # 批量将图片转为灰度图
 9 def patchConvert(srcPath, destPath):
10     fileList = getFileList(srcPath)
11     for file in fileList:
12         img = Image.open(file).convert(\'L\')
13         name_ext = getFileNameAndExt(file)
14         destFile = os.path.join(destPath, name_ext[0]+\'.tif\')
15         img.save(destFile)
16 
17 # 获取文件名和扩展名
18 def getFileNameAndExt(filename):
19     # 取目录与文件名
20     (filepath, tempfilename) = os.path.split(filename)
21     # 取文件名(不带扩展名)和扩展名
22     (shotname, extension) = os.path.splitext(tempfilename)
23     return shotname, extension
24 
25 patchConvert(\'captcha\', \'captcha_gray\')

3. 后续步骤参考原先的博客:

http://www.cnblogs.com/CoolJayson/p/7395824.html

问题: 生成box文件后, 用jTessBoxEditor修改box文件时, 里面的矩形画的误差较大, 字符个数识别不准确 , 应该如何对矩形进行修改???

 

以上是关于用Tesseract训练验证码遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

训练自己的 Tesseract LSTM模型用于识别验证码

训练自己的 Tesseract LSTM模型用于识别验证码

利用jTessBoxEditor工具进行Tesseract3.02.02样本训练,提高验证码识别率

JAVA验证码识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本

WebUI智能识别验证码之tesseract

20 行代码带你实现验证码自动识别