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);
    

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

  • 相关阅读:
    Java-笔记9-复习
    Java-笔记9
    Java-笔记8-复习
    Java0-笔记8
    Java-笔记7-复习
    hadoop-hdfs-ha配置-搭建
    Java-笔记7
    Java-笔记6-复习
    kettle-作业和参数
    kettle-脚本控件
  • 原文地址:https://www.cnblogs.com/mjxxsc/p/3592363.html
Copyright © 2011-2022 走看看