您的位置:首页 > 其它

黑白简单验证码的识别

2014-03-10 18:25 183 查看
简单验证码,例如下图, 验证按摩图片来源: 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);


  下一篇,整理一下,如何解析复杂的彩色验证码, 当然, 我只给思路, 具体情况,要具体分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: