Python机器学习之验证码识别

Python分类模型之验证码识别


下载验证码

首先,我们从目标网站下载足够多数量的验证码,以用来制作训练集,并通过训练集生成模型。这里以深圳信用网为例,下载500张验证码。

def download_image():
    """download captcha image"""
    url = 'http://www.szcredit.org.cn/web/WebPages/Member/CheckCode.aspx'
    headers = {
  'user-agent': ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) "
                              "AppleWebKit/536.3 (KHTML, like Gecko) "
                              "Chrome/19.0.1063.0 Safari/536.3")}
    for i in range(0, 500):
        image = Img.download_image(url=url, headers=headers)
        with open('source_image/%s.png' % str(i), 'wb') as f:
            f.write(image)
            f.close()

图像处理

图像处理是验证码识别过程中最复杂,最难的一点,通常需要自己琢磨一些算法逻辑,来对验证码进行切割处理。

二值化原始图

在图像处理之前,我们首先对所有的原始验证码图片进行二值化操作。

# -*- coding:utf-8 -*-
# python 3.6

from os import listdir
from PIL import Image
import Img      # 自定义的包

def two_value():
    """将训练集所有原始图进行二值化"""

    file_list = listdir('source_image/')
    for each in file_list:
        image = Image.open('source_image/%s' % each)
        image = Img.twoValueImage(image, 200)
        image.save('two_value_image/%s' % each)

if __name__ == '__main__':
    two_value()

声明图像类

其次需要进行图片切割,但在切割之前,我们先定义一个验证码的类,图像处理的过程都是通过这个类的方法来实现。

# -*- coding:utf-8 -*-
# python 3.6

from os import listdir
from PIL import Image
import Img      # 自定义的包

class SZ_Captcha:
    """captcha of sz_credit.org"""

    def __init__(self, image):
        """初始化验证码,声明下列属性

        :param image: PIL Image object
        """
        self.image = im
  • 5
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值