黑白简单验证码的识别
简单验证码,例如下图, 验证按摩图片来源: 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);
下一篇,整理一下,如何解析复杂的彩色验证码, 当然, 我只给思路, 具体情况,要具体分析
本文来自博客园,作者:兴想事成,转载请注明原文链接:https://www.cnblogs.com/mjxxsc/p/3592363.html