zoukankan      html  css  js  c++  java
  • 黑白简单验证码的识别

    简单验证码,例如下图, 验证按摩图片来源:  http://112.122.11.138/cs/RandomPic.aspx

         

       本例子介绍 基本的识别方法,和思路.

      首先, 这个验证码图片是 黑色的背景,白色的字体m,这样的图片识别起来相对比较容易, 如果是彩色的 字体,彩色的背景,识别起来就比较麻烦.

     先将黑底白字,转化为白底黑字,当然这只是 为了一般的识别习惯.

     将新的图片,进行横向和纵向的切割,得到切割后的 4个小图片,规则矩形,没有旁白.

     对每一个小图片进行颜色判断, 比如 白色为0,黑色为1,遍历行和列,得到一组字符串 ,比如 : 001011101001001001001001001001

     进行 人为判断, 这个图片的字符码 代表1, ,另外一个代表 2,依次多试几次, 得到每一个不重复的字符集 的码

     例如下面定义的一个数组,就是所有单个的码:

        

     public string[] zm ={ "0","001011101001001001001001001001",
                                    "011110100001000001000001000001000010000100001000010000111111",
                                    "011110100001000001000001001110000001000001000001100001011110",
                                    "000010000110000110001010001010010010010010111111000010000010",
                                    "011111010000010000100000111110100001000001000001100001011110",
                                    "011110100001100000100000101110110001100001100001100001011110",
                                    "111111000010000010000100000100001000001000010000010000010000",
                                    "011110100001100001100001011110100001100001100001100001011110",
                                    "011110100001100001100001100011011101000001000001100010011100"};
    

      

    然后遍历,这个 zm数组,得到你要的 数字,最后把这 4个数字 拼起来,就是 你要的 验证码的值.

     源代码下载 : 识别简单验证码

     调用方法: 

     
     //sourcebm 为 Bitmap 对象的实例
      string randomCode = new AnalyzeImgCode().ShiBie(sourcebm);
        Console.WriteLine(randomCode);
    

      下一篇,整理一下,如何解析复杂的彩色验证码, 当然, 我只给思路, 具体情况,要具体分析

  • 相关阅读:
    6个变态的C语言Hello World程序
    Thread和Runnable差别
    HTML5游戏开发技术基础整理
    Kruskal算法
    PHP手机获取6为不反复验证码
    怎样推断手机用户是移动,电信,联通?
    SQL Server 2012 sa 用户登录 18456 错误
    Phonegap(Cordova)3.4 + Android 环境搭建
    LCA在线算法ST算法
    Swift学习笔记八:枚举
  • 原文地址:https://www.cnblogs.com/mjxxsc/p/3592363.html
Copyright © 2011-2022 走看看