@TOC
用自己训练的数据跑tesseract识别验证码,最后附上正确率
1、使用现成的工具jTessBoxEditor,和tesseract,都是已经写好的工具,不需要再造轮子(尤其是从头学深度学习让你造一个神经网络写完就已经半年后了,还不排除从入门到放弃)首先要安装JDK,训练数据的机器依赖JAVA环境
JDK8:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jTessBoxEditor:https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/
2、准备训练数据
我已经写好了代码,简单写了写,都是想着自己用的,所以看起来很小白啦
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import random
def getRandomColor():
# 获取一个随机颜色(r,g,b)格式的
c1 = random.randint(0, 255)
c2 = random.randint(0, 255)
c3 = random.randint(0, 255)
return (c1, c2, c3)
def getRandomStr():
# 获取一个随机字符串 颜色随机
# 数字
random_num = str(random.randint(0, 9))
# 大写
random_low_alpha = chr(random.randint(97, 122))
# 小写
random_upper_alpha = chr(random.randint(65, 90))
random_char = random.choice([random_num, random_low_alpha, random_upper_alpha])
return random_char
def getCaptcha_1():
for pages in range(0, 100):
# 获取数字验证码 随机颜色
# 获取一个Image对象,参数分别市RBG模式 宽150 高30 随机颜色
captcha = Image.new('RGB', (150, 40), getRandomColor())
draw = ImageDraw.Draw(captcha)
# 获取一个font字体对象参数市ttf的字体文件的目录以及字体的大小
font = ImageFont.truetype("arial.ttf", size=32)
# 在图片上写东西,参数是:定位,字符串,颜色,字体
for i in range(4):
draw.text(</