验证码识别技术研究
来源:互联网 发布:照片恢复软件下载 编辑:程序博客网 时间:2024/06/03 13:23
一·识别系统的设计:
1.图像二值化
图像二值化:图像显示的时候只能看到两种颜色(经常是黑色和白色)
采用阀值判定法。阀值的选择非常重要,如果选择不好,要么保留了很多噪声信息,要么丢失了很多有用信息。
2.图像的腐蚀
腐蚀可以消除小且无意义的噪声。
这个可以根据自身遇到的验证码的进行多次腐蚀。但过度腐蚀将造成有效信息的大量流失——因为腐蚀号码边缘的同时,内部的空洞也在逐渐的扩大。
3.图像膨胀
膨胀操作之后,验证码图像会变大,此时可以根据需要再次执行腐蚀的操作。腐蚀和膨胀是相辅相成的,我们可以根据实际的情况选择两者执行顺序的先后和重复次数,这个一定要灵活变通。
4.图像中的值滤波
中值滤波对验证码的背景孤立噪声的去除具有较好的效果,验证码内部较小的空洞也可以通过滤波实现填充。我们需要根据自身的实际情况进行多次值滤波的操作。
5.图像的分割
图像分割是根据目标与背景的具体位置,对图像中的目标,背景进行标记,定位,然后持续讲识别的目标与背景分离。有效分割是提取和识别的重中之重。
用投影法进行分割:在号码的区域间隔,投影为空白。在读取验证码信息的时候,设置阀值T作为字符与空白区域的边界条件。当读取的信息大于T时,开始读取字符:反之,则进入间隔区域。
具体步骤如下:1.全面去噪;2.整体水平去噪;3,划分边界;4垂直去噪;5水平去噪。
6.文字特征的提取
(一)·字符结构法
这种方法是以字符的结构特点和笔画类型,数据以及其位置作为识别特征,而不受验证码的字符图像大小的影响,适应性较强。判断依据:闭环数,闭环位置,笔划类型等等。
闭环算法如下:
读入二值化的验证码图像→找到一个像素值为0(黑色)的背景像素点B→搜索B的连通区域,并将该连通区域内的像素全部记为背景1(白点)→遍历图像中像素值为0的点→若存在没有标记为背景0的像素点,则为有封闭环:反之内封闭环数为0→重复遍历过程,确定闭环数目
(二)穿梭线法
在图像中引入贯穿字符区域的直线,根据字符与穿梭线的交点数进行识别。对于存在背景噪点声的字符,或者腐蚀过度造成笔划断裂的字符,穿梭线识别算法表现出先天不足。
(三)节点统计法
节点统计法以字符本身比笔划间的节点数作为统计特征。M为字符两个笔划相交节点数:N为字符三个笔划相交的节点数,P为大于三个笔划相交节的点数:(M,N,P)即为识别特征。
缺点:由于字符笔画较粗,在进行腐蚀处理后,往往造成笔画丢失,应用效果不佳。
(四)模版匹配法
验证码为英文字母和数字以不同字体,大小混合编排,因此这里我们相应采用了模版匹配的方法,它不必过分顾及它们的格式,在号码倾斜幅度较小的情况下,具有明显优势。以数字8的特征提取为例:
首先,我们把模版网格化。所谓的网格化,即把模版的图像瓜分为若干个区域,每一个区域即为一个小网格。接着,以区域内黑色像素数为特征,对每个区域的数字特征进行提取,即模版的数字化。
数字的标准模版均为46x72的格式,将其从左上角开始均分成4x7的网格,每个网格有10x10=100个像素。余下右侧和下方12个较小的网格,包含的信息量较少,予以忽略。数字8以黑色像素个数为特征提取出来的像素矩阵如下面所示:
背景复杂的验证码图片,增强程序的抗干扰性以提高识别率等等,都是有待我们需要攻克的难关,此篇文章主要是针对验证码识别技术做出探讨,完善程序是一条漫漫长路!望各位看官和我一样共同求索。
- 验证码识别技术研究
- 验证码识别技术研究
- 印刷体藏文文字识别技术研究
- CSDN验证码识别
- 验证码识别技术
- c# 识别验证码
- vb-验证码识别
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 验证码识别技术
- 如何识别验证码
- 验证码识别技术
- 验证码识别浅谈
- 简单验证码识别
- 验证码识别技术
- 验证码识别技术
- datagridview自绘
- C#调用winhttp组件 POST登录迅雷
- 表达式计算的代码
- 130道C#面试题
- 反编译与调试APK
- 验证码识别技术研究
- 一枚颜值颇高、骨骼清奇的红薯
- 7.AD转换—基于CT117E开发板的STM32库函数编程
- [AHK]读取硬件信息
- 多UI线程WPF程序随机挂起问题
- eclipse install software时始终停留在calculating requirements and depen
- WSAAsyncSelect模型
- 8.内部温度传感器的使用—基于CT117E开发板的STM32库函数编程
- QML开发简单浏览器(加载H5)