爬虫进阶:验证码突破--5、验证码处理

本文深入探讨了如何使用机器学习算法来处理验证码,主要包括灰度化、二值化、降噪和字符分割等步骤。通过提供的代码示例,展示了在Python中利用库如numpy、PIL、cv2和pytesseract进行操作的过程,并提到了验证码识别的挑战,如调整阈值的比例参数。
摘要由CSDN通过智能技术生成

前面有篇文章提到关于验证码的生成:https://blog.csdn.net/huoyingchong64/article/details/89788676

本文主要是针对这个验证码进行的机器学习算法的验证码处理。
主要包含灰值化,二值化,降噪,分割字符。下面就是经过测试后的代码。其中
rate = 0.01 # 在threshold的适当范围内进行处理,由于rate设置为0.1时,有一个字母灰度太接近这个阈值,导致映射为0
这个rate比例值还需要测试。当然比例直接设置为0也是可以的,也就是判断i==threshold

#coding:utf-8
import numpy as np
from PIL import Image,ImageDraw,ImageFile
import cv2
import imagehash
import time
import os
import pytesseract

from collections import defaultdict
rootdir = “D:/CapCha/Test”
# tesseract.exe所在的文件路径
pytesseract.pytesseract.tesseract_cmd = ‘C://Program Files (x86)/Tesseract-OCR/tesseract.exe’
def ReadFileList():
#尝试直接识别
list = os.listdir(rootdir)
for i in range(0,len(list))[0:10]:
path = os.path.join(rootdir,list[i])
print(path)
if os.path.isfile(path):
print(os.path.basename(path))
image = Image.open(path)
code = pytesseract.image_to_string(image)
print(code)

def splitimage(rownum, colnum, dstpath,img_name,outpath):
    '''
        图片分割
        :param rownum: 切割行数
        :param colnum: 切割列数
        :param dstpath: 图片文件路径
        :param img_name: 要切割的图片文件
        :param outpath: 输出文件路径
        :return:
        '''
    img = Image.open(img_name)
    w, h =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值