字母验证码识别.docx

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于标准库对比法的验证码识别系统摘要:本文对学校教务网的验证码进行分析和处理,建立了一套有效的验证码识别系统。首先我们从教务网获取了大量的验证码图像作为研究素材,而后对图像进行了一系列的预处理:彩色RGB图像的灰度化、灰度图像的二值化以及图像去燥。通过预处理,验证码图像的清晰度大幅提升。再根据题中图像的特点设计字符分割的算法,将处理后的图像分割为单个字符,从而避免识别过程中出现的字符信息不完备等缺陷。之后提取出26个字母的像素点矩阵,并建立字符识别的标准库。识别过程中,将待识别的验证码图像分割为单个字母的像素点矩阵,通过标准库对比法,识别出其对应的验证码字符,识别率超过75%。关键词:验证码识别、字符分割、标准库对比法、matlab1、问题重述随着计算机网络的快速发展,用户信息与用户数据的安全性渐渐成为人们关注的焦点。为了防止网络黑客恶意破解密码、论坛灌水、非法入侵用户计算机系统等行为,大多数网站现采用验证码技术维护网络安全。学校教务网也不例外,其验证码均由四个大写字母组成(示例如下图所示),以此保障用户数据的安全。图1-1请查阅相关资料和数据,建立数学模型并编写程序,建立一套教务网验证码识别系统。2、问题分析本题要求建立一套教务网验证码的识别系统。首先我们要从学校教务网获取大量验证码图像,对图像进行预处理,即图像灰度化、图像二值化和图像去噪;再将验证码图像分割为一系列的单个字符,得到每个字母的像素点矩阵,建立26个字母的标准库;最后把待识别的验证码图像分割为单个字母,通过与标准库的对比进行字符识别,从而得到验证码图像中的对应字母。3、符号说明符号符号说明Gray图像的灰度值Red红色像素分量Green绿色像素分量Blue蓝色像素分量v阈值f(x,y)图像的灰度坐标值pixel像素点个数i循环变量front字符左边界back字符右边界4、问题假设4.1 假设收集的图像素材具有充分的代表性。4.2 假设验证码图像中的各字符互不粘连。5、模型的建立与求解5.1 验证码图像的预处理为了消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而提高图像分割、匹配和识别的可靠性,我们将验证码图像进行预处理操作,即灰度化、二值化、去除噪点。5.1.1 彩色RGB图像的灰度化将图像中的亮度和色彩的彩色转变成灰度图像的这一过程称为图像的灰度化处理。在RGB模型中,若R=G=B,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值。本题采用加权平均法对验证码图像进行灰度化,由下式:(1)其中,Gray为灰度值,红色、绿色、蓝色的像素分量分别为Red、Green、Blue,由此可以将图像的灰度值变为256级。[1]5.1.2 灰度图像的二值化图像的二值化是将图像上像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。二值化过程中,首先在0~255之间选取一个阈值v(本题选取110作为图像的阈值),设图像的灰度为f(x,y)。灰度值大于阈值像素时,设置为黑色;灰度值小于或等于阈值像素时,设置为白色。[2]即:(2)5.1.3 图像去噪验证码图像在生成过程中会受到噪声干扰的影响,因此,需要对图像进行去噪处理,即减少数字图像中的噪声,以提高验证码的识别率。本题图像中的大部分噪点是简单的孤立点,通过检测这些孤立点就可移除大量的噪点。可将所有的像素点分为下图的三类:顶点A、非顶点的边界点B、内部点C。[3]图5-1-1其中,A类点计算周边相邻的3个点,B类点计算周边相邻的5个点,C类点计算周边相邻的8个点。由于基准点在计算区域的方向不同,A类点和B类点还会有细分。A类点细分为:左上、左下、右上、右下;B类点细分为:上、下、左、右;C类点则不用细分。主要算法由matlab实现。5.2字符分割验证码图像可以看作是由一系列的单个字符图像拼接而成的,为提高系统的识别率,我们将图像分割为只包含单个字符的图像。分割的过程中存在以下几类问题:字符位置不稳定、字符宽度不固定、去噪后部分字符有粘连。为解决上述问题,我们采用下面的算法进行分割。统计每一行字符的黑色像素点个数和每一列的黑色像素点个数。对于行需求取2个边界,像素点个数pixel2即为边界;对于列需求取5个边界,则需要考虑以下情况:以pixel0定义字符最左边界,设为front;i自front向右移动,若pixel=0且1(i-front)17,则back=i; 若i-front=17,则m=min(pixel(i:i-15)),取back等于pixel=m的最右一列;若i-front17且已到列最右侧,则back取列的最大值;若分割数不等于4,则跳过本图进行下次分割。分割后的图片均放在20*20的白色背景上,放置位置在左上方。字符分割完成后即得到单个字母的

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档