- 0 项目说明
- 1 使用方法
- 2 前期准备
- 3 图像处理
- 4 识别算法
- 5 项目源码
0 项目说明
基于机器视觉的验证码识别研究与实现
提示:适合用于课程设计或毕业设计,工作量达标,源码开放
获取项目源码:https://download.csdn.net/download/Seniors_DC/85574221
1 使用方法
- 爬取验证码
- 对图像做处理并切分
- 手工标注数据
- 导入训练集
- 使用测试集
1.Image (图像处理库)
- jpeg
- zlib
- PIL
2.numpy (数学处理库)
3.ImageEnhance (图像处理库)
enhancer = ImageEnhance.Contrast(img) # 增加对比对 img = enhancer.enhance(2) enhancer = ImageEnhance.Sharpness(img) # 锐化 img = enhancer.enhance(2) enhancer = ImageEnhance.Brightness(img) # 增加亮度 img = enhancer.enhance(2)3 图像处理
静态图片
- 清除图片噪点
- 清除图片干扰线
- 切割图片
- 信息输出
动态图片
- 按帧转存 GIF
- 读取每个 GIF 的 Duration 属性
- 找到 Duration 最长的图片,后同静态图片处理
KNN
# kNN algorithm
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX, (dataSetSize, 1)) - dataSet
sqDiffMat = diffMat ** 2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances ** 0.5
sortedDistIndicies = distances.argsort()
classCount = {}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]] # changed
classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
SVM
根据算法的性质,可以问题设定成一个二分类问题:识别数字1和2(当然也可以是其他的任意两个数字)。
获取项目源码:https://download.csdn.net/download/Seniors_DC/85574221



