免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > VB识别倾斜验证码详解(基于模板库匹配)

VB识别倾斜验证码详解(基于模板库匹配)

时间:2012-01-09 16:37来源:未知 整理:寂涯网络 点击:

前面介绍了基于模板库匹配的方法,本篇进一步讨论倾斜字符的验证码识别,以阿里通
的验证码示例。它的验证码URL为:http://account.alicall.com/fujiae.asp?0.436909
 19899381697,后面一串数字是随机数。验证码显示效果如图1 所示:

图 1  阿里通验证码

分析验证码
 
观察该验证码可发现如下特征:
①  它的大小为72像素×18像素,由 4个纯数字组成  
②  验证码为单一的色彩,但存在干扰像素,需要先滤除  
③  观察左上和右下的数字 1,可知数字存在一定的倾斜,但倾斜程度有限,不会越界
到另一个字符的区域
④  每个数字都固定在18×18的区域内
识别该类验证码的可采用如下方法:首先将验证码分割成若干区域,然后分别统计特定
区域内有效像素的总数。在匹配时,寻找各区域内总数差异最小的字符即可。
示例验证码中,虽然数字产生了一定的倾斜,但位于上部的像素点,却仍旧是处于图片
的上部,如图2所示:

像素点的大体分布是没有改变的。因此我们可以考虑统计上方18×9方格的深色点的总
数,再统计下方18×9 方格的深色点的总数。以此作为比对的依据。
本文作为示例,我们将一个数字横向分割为上、中、下三部分,分别统计像素点个数;
在纵向上分割为左、右两部分,统计像素点个数。
根据此基本方法,使用VB6.0 编写一个简单的识别程序。

 程序主窗体的基本布局如图3 所示:

图 3 窗体的基本布局

所添加的 4个按钮如表格所示:

2 个 PictureBox 从上至下分别是:Picture1,Picture2,将它们的 ScaleMode 属性都
设置为 3-Pixel,使用像素作为长度单位。
此外,添加一个Microsoft Internet Transfer控件,用于下载验证码, Name默认Inet1。
添加一个用于显示识别结果的 Label,Name 设置为 LblResult。一个用于输入字符串的
TextBox ,Name 设置为TxtChar。我们把字符串输入到这个文本框,点击“写入文件”按钮
可将当前 4个数字的统计结果写入Settings.INI文件。
除噪采用的方法在以前的文章中已介绍:一个点周围的 8 个点若都不是黑色点,说明
该点是孤立的噪点,直接将其颜色设定为白色。
首先为“下载”按钮添加的简短代码:

Private Sub CmdDown_Click()
'下载按钮暂时变为不可用
    CmdDown.Enabled = False
    '声明用于保存图片二进制数据的数组
    Dim picBytes() As Byte
    picBytes =
Inet1.OpenURL("http://account.alicall.com/fujiae.asp?0.43690919899381697",
icByteArray)
    While Inet1.StillExecuting
        DoEvents
    Wend
    '将图片数据写入Test.bmp文件
    Open App.Path & "\test.bmp" For Binary As #1
    Put #1, , picBytes
    Close #1
    '将 Test.bmp载入 Picture1
    Picture1.Picture = LoadPicture(App.Path & "\Test.bmp")
    '按钮恢复可用
    CmdDown.Enabled = True
End Sub

用户每次单击“下载”,都将下载一张新的验证码图片,并显示到Picture1控件中。
二值化是将原先的彩色图片转换为黑白两色的图片。原图中深色点设置为黑色,浅色的
点设置为白色。颜色深浅由其 RGB 值来筛选。示例程序采用 40 作为临界值。参考下面的代
码:

Private Sub CmdClear_Click()
'二值化和除噪
Picture2.Cls
'把原图装入Picture2

 Picture2.Picture = Picture1.Picture
    Dim X As Integer
    Dim Y As Integer
    Dim Ret
    '深色点置黑,浅色点置白

本页地址 http://www.jybase.net/biancheng/20120109745.html

百度搜索更多

谷歌搜索更多

顶一下
(1)
50%
踩一下
(1)
50%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com