利用SVM向量机进行4位数字验证码识别
主要是思路和步骤如下:
一,素材收集
检查环境是否包含有相应的库:
1.在cmd中,通过 pip list命令查看安装的库
2.再使用pip installRequests 安装Requests库
3.再次使用pip list 命令
4.利用python获取验证码资源
编写代码:_DownloadPic.py
#!/usr/bin/nev python3
#利用python从站点下载验证码图片
import requests
## 1.在 http://www.xxx.com
# 获取验证码URL
def Downloads_Pic(strPath, strName):
#设置url
url = 'http://www.xxx.com'
#以二进制方式发送Get请求,
#将stream = True,
#数据读取完成前不要断开链接
rReq = requests.get(url, stream = True)
#尝试保存图片
with open(strPath + strName + '.png', 'wb') as fpPic:
#循环读取1024Byte到byChunk中,读完则跳出
for byChunk in rReq.iter_content(chunk_size = 1024):
if byChunk:
fpPic.write(byChunk)
fpPic.flush()
fpPic.close()
for i in range(1, 10 + 1):
strFileName = "%03d" % i
Downloads_Pic('D:/1/', strFileName)
二,素材处理
1.二值化处理,增加对比度,锐化,增加亮度,滤镜,转为黑白
2.去除噪点
3.切割图片
编写代码:_PicDealWith.py
#!/usr/bin/env python3
import os
import os.path
from PIL import Image, ImageEnhance, ImageFilter
import random
#二值化处理
#strImgPath 图片路径
def BinaryzationImg(strImgPath):
#打开图片
imgOriImg = Image.open(strImgPath)
#增加对比度
pocEnhance = ImageEnhance.Contrast(imgOriImg)
#增加255%对比度
imgOriImg = pocEnhance.enhance(2.55)
#锐化
pocEnhance = ImageEnhance.Sharpness(imgOriImg)
#锐化200