栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【毕业设计/课程设计】基于机器视觉的验证码识别研究与实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【毕业设计/课程设计】基于机器视觉的验证码识别研究与实现

文章目录
  • 0 项目说明
  • 1 使用方法
  • 2 前期准备
  • 3 图像处理
  • 4 识别算法
  • 5 项目源码


0 项目说明

基于机器视觉的验证码识别研究与实现

提示:适合用于课程设计或毕业设计,工作量达标,源码开放

获取项目源码:https://download.csdn.net/download/Seniors_DC/85574221


1 使用方法
  1. 爬取验证码
  2. 对图像做处理并切分
  3. 手工标注数据
  4. 导入训练集
  5. 使用测试集
2 前期准备

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 图像处理

静态图片

  1. 清除图片噪点
  2. 清除图片干扰线
  3. 切割图片
  4. 信息输出

动态图片

  1. 按帧转存 GIF
  2. 读取每个 GIF 的 Duration 属性
  3. 找到 Duration 最长的图片,后同静态图片处理
4 识别算法

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(当然也可以是其他的任意两个数字)。

5 项目源码

获取项目源码:https://download.csdn.net/download/Seniors_DC/85574221

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号