这个网站的验证码全部是数字,比较简单,可以自动识别码?
http://www.jcard.cn/
网上找了,识别4位的简单的可以,但这个网站的是5位的,请教方法,谢谢。

解决方案 »

  1.   

    曾经做过这个网站的自动识别,识别率99%。http://www.hneao.cn/hngz/checkcode.aspx
      

  2.   


    http://www.jcard.cn/Modules/LoginRandomImage.aspx
    这个网站的,把后面颜色部分去掉,就是黑白的了,更容易识别,我那网站的颜色是随机变的,而且他的字母不是定宽定长,比这个网站的难识别多了。
    这个网站的只有数字,很容易做作出字模矩阵来,象0就是如下的矩阵
    011110
    111111
    110011
    110011
    110011
    110011
    110011
    111111
    011110
    识别时加上一定的容错率,识别率应该是100%的。
      

  3.   

    http://www.hneao.cn/hngz/checkcode.aspx这个网站的字母识别率比较麻烦,而且颜色不一。
      

  4.   

    '笨办法,先把图片存成图片,再用Picture调用。
            x = FreeFile
            Inet1.URL = "http://www.jcard.cn/Modules/LoginRandomImage.aspx"
            b() = Inet1.OpenURL(, icByteArray)
            Open "c:\tmp.bmp" For Binary Access Write As #x
            Put #x, , b()
            Close #x
            Picture1.Picture = LoadPicture("c:\tmp.bmp")
    '再用Picture1.Point(X, Y)调用图片每个像素的颜色值进行判断。因为这个网站的字体可以设置成黑色,而背景可以设置成白色,判断就容易了。
    tmp = Picture1.Point(j, i)
    s1 = Trim(Hex(tmp))
    判断这个值的大小就能知道他是白色还是黑色,当然这个颜色有时有小量的偏差。需要调整。
    再用每个字模的矩阵进行对比,得出结论。
      

  5.   

    新建一个工程,然后加入一个Picture1 控件,一个Inet1 控件,一个Text1 控件,然后把下面代码拷贝,再点击Picture1控件,再看看Text1中的内容,你就清楚怎么做了。因为你这个网站的很容易识别,如果是其它的加入了噪点的就难些。Private Sub Picture1_Click()
        Dim b() As Byte
        x = FreeFile
        Inet1.URL = "http://www.jcard.cn/Modules/LoginRandomImage.aspx"
        b() = Inet1.OpenURL(, icByteArray)
        Open "c:\tmp.bmp" For Binary Access Write As #x
        Put #x, , b()
        Close #x
        Picture1.Picture = LoadPicture("c:\tmp.bmp")
        Text1.Text = ""
        For i = 5 To 13
        tt = ""
            For j = 0 To 39
            If Picture1.Point(j, i) <> 16777215 Then '
                tt = tt & "1"
            Else
                tt = tt & " "
            End If
            Next
            Text1.Text = Text1.Text & tt & Chr(13) & Chr(10)
        Next
    End Sub