tesseract 训练入门--记一次50张简单验证码的训练过程

省略各种tesseract和各种包的安装,默认有python基础

需要有java环境以便操作训练工具jTessboxeditor,jdk和训练辅助工具的安装此处不讨论.

 本人使用ubuntu18.04   环境,训练工具是在windows虚拟机上安装java后使用的

1. 得到验证码图片

    发现安居客的验证码较为简单,这里借用安居客验证码接口下载验证码,代码仅供参考,验证接口也许以后会变,这里主要阐述方法

#num =你想获取的验证码数目
def gen_captcha_from_url(num):

    # https://login.anjuke.com/general/captcha?timestamp=15580192349965467 安居客

    if not os.path.exists('code_pic/'):
        os.mkdir('code_pic/')
    pic = []
    for i in range(0, num):
        fake_timestamp = get_random_string(8, 8, 0, 0)
        url = 'https://login.anjuke.com/general/captcha?timestamp=' + fake_timestamp
        print(url)
        response = requests.get(url)
        filename = 'code_pic/' + str(i) + '.jpg'
        pic.append(filename)
        with open(filename, 'wb')as f:
            f.write(response.content)

    return pic

2. 将图片二值化处理

由于得到的验证码图片为彩色内容,需要将其进行二值化处理,形成黑白影像,以便tesseract 识别


def two_value(pic):
    img = Image.open(pic)
    # 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。
    Img = img.convert('L')
    Img.save(pic)

    # 自定义灰度界限,大于这个值为黑色,小于这个值为白色
    threshold = 200

    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)

    # 图片二值化
    photo = Img.point(table, '1')
    photo.save(pic)

3.先自己手动识别一遍,填入人工处理的结果(非必须,只是为了方便计算识别率)

手动填入的示例

 

4. 将其转换成tiff格式的文件,并调用tesseract进行识别

 

#
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值