一、背景意义
验证码具有多变性特点,而当前的识别系统往往具有很强的针对性, 只能够识别某种类型的验证码。随着网络安全技术及验证码生成技术的不断发展,已经出现了更加复杂的验证码生成方法,如基于动态图像的验证码系统等。
运用计算机视觉、模式识别等相关理论对多种不同类型的验证码进行识别研究。
矩特征主要表征了图像区域的几何特征,又称为几何矩, 由于其具有旋转、平移、尺度等特性的不变特征,所以又称其为不变矩。
二、理论基础
本案例提出了以处理颜色加噪的数字字符为理论研究素材, 将模板匹配作为基本框架的验证码识别系统。本系统的优点在于能够对特定类型的数字验证码进行精确识别,实验中识别准确率可达到95%以上,并提供动态更新样本库的功能,可根据实际运行的环境提高验证码的识别率。
本案例选择了经典的数字验证码识别作为识别的对象。验证码的识别涉及图像预处理、分割、特征提取、识别等相关技术,本案例通过对彩色验证码图像进行灰度化、二值化、去噪和归一化等步骤来进行预处理,通过建立模板库的动态更新机制来提高系统的兼容性,进一步提升验证码识别的效率和准确性。
流程图如下:
三、算法流程
为了进行验证码识别, 建立模板库建立动态模板库,加入自动更新的功能提高对数字验证码的识别率。数字验证码待识别对象即数字0 ~ 9,调用mkdir 函数来自动建立模板数据库文件夹。
由于图中有类似于椒盐噪声的带有颜色的噪声,数字验证码中的数字个数保持常量并且分布均匀、易于分割。因此,为了进行下一步的数字分割操作,需要先进行验证码图像去噪步骤。本案例采用颜色空间转换到hsv 的方式,用阈值过滤的手段进行去噪。
进行图像去噪之后,可以发现验证码图像中的数字呈现分布均匀的状态,并且未明显受到倾斜、形变等因素的影响。
借用数字图像二值化、积分投影的方式可对数字进行定位。在实际处理过程中,为了保证分割有效,加入了区域面积滤波操作,将剩余的噪声点进行滤除。
为了进行下一步的识别操作,需要将分割结果进行归一化处理, 整合成固定维数的数
字集合。
数字图像分割完成后,通过提取数字图像的不变矩特征信息,与模板库中的数字图像
进行对比,得到识别结果。
四、效果演示
五、完整代码
如果需要源代码,可以参考资源:
基于不变矩的数字验证码识别(带GUI界面):https://download.csdn.net/download/didi_ya/87374412
,如果遇到任何运行问题,请私信博主,看到后会免费答疑解惑,当然也可根据你的需求修改GUI界面。