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

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

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

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


    For Y = 0 To Picture2.ScaleHeight - 1
        For X = 0 To Picture2.ScaleWidth - 1
            Ret = ColorRGB(Picture1.Point(X, Y))
            If Ret(0) < 40 Or Ret(1) < 40 Or Ret(2) < 40 Then
               '深色点置黑色
               Picture2.PSet (X, Y), vbBlack
            Else
               Picture2.PSet (X, Y), vbWhite
            End If
        Next X
    Next Y
    '除去噪点
    For Y = 0 To Picture2.ScaleHeight - 1
        For X = 0 To Picture2.ScaleWidth - 1
            '如果是黑色的像素点
            If Picture2.Point(X, Y) = vbBlack Then
                '一个点上面的3 个点是否存在黑点
                If Picture2.Point(X -  1, Y - 1) = vbBlack Then GoTo NextPoint:
                If Picture2.Point(X, Y - 1) = vbBlack Then GoTo NextPoint:
                If Picture2.Point(X, Y + 1) = vbBlack Then GoTo NextPoint:
                '一个点的左右两侧是否存在黑点
                If Picture2.Point(X - 1, Y) = vbBlack Then GoTo NextPoint:
                If Picture2.Point(X + 1, Y) = vbBlack Then GoTo NextPoint:
                '一个点下面的3个点是否存在黑点
                If Picture2.Point(X -  1, Y + 1) = vbBlack Then GoTo NextPoint:
                If Picture2.Point(X, Y + 1) = vbBlack Then GoTo NextPoint:
                If Picture2.Point(X + 1, Y + 1) = vbBlack Then GoTo NextPoint:
                '如果周围不存在黑点,把该点设为白色
                Picture2.PSet (X, Y), vbWhite
            End If
NextPoint:
        Next X
    Next Y
    '为了查看除噪的效果,可以使用下面的语句将图片保存为test2.bmp
    SavePicture Picture2.Image, "test2.bmp"
End Sub

ColorRGB 函数的内容在之前的文章中已有介绍,此处不再赘述,它的作用是将一个 16
进制颜色值转换为RGB,返回一个元素个数为3的数组。除去噪点的方法跟《VB识别动网中

文字符验证码》一文采用的方法相同。
用户分辨出验证码的内容,输入文本框,程序将统计结果写入程序目录下的
Settings.ini,为“写入文件”按钮添加下述代码:

'先二值化和除噪
    Call CmdClear_Click
    Dim X As Integer
    Dim Y As Integer
    Dim i As Integer
    Dim nCount_Up As Integer
    Dim nCount_Down As Integer
    Dim nCount_Middle As Integer
    Dim nCount_Left As Integer
    Dim nCount_Right As Integer
    '循环扫描完四个字符
    For i = 0 To 3
        '有用像素点总数初始为0
        nCount_Up = 0
        nCount_Middle = 0

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

百度搜索更多

谷歌搜索更多

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

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


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

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