设为首页
收藏本站
本站论坛
   
3
3
   
  文章列表      

CSDN新版图形验证码初级识别

这里的方法只是利用<CSDN Blog发表评论验证码识别>思路和方法对CSDN新版特征码进行识别,只对一部分特征码有效。不过通过改进算法,应该可以得到很好的效果。

新版特征码举例如下:

CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_1.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_2.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_3.jpg" width=150 border=0>
CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_4.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_5.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_6.jpg" width=150 border=0>
CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_7.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_8.jpg" width=150 border=0>CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_9.jpg" width=150 border=0>

初步分析,该特征码使用以下方式增加识别难度:

    不单纯的背静色

    随机出现的干扰线

    随机出现的干扰点

    不同字符颜色不一样

    字符出现的位置不一样

    字符之间的距离随机,还有可能连在一起。

    使用了斜体字,即使不连接,也不能采用矩形方式获取其中的一个字符

现在开始针对上面的问题进行处理

我们先看一个操作,使用Windows自带的画图把保存的特征码以单色位图的方式保存,
CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_danse.GIF" width=594 border=0>

现在看变化:CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_1.jpg" width=150 border=0>变成CSDN.net/images/blog_CSDN_net/Qqwwee_Com/176332/r_danse1.gif" width=150 border=0>,这样1、2、4三点的干扰就没意义了。

下面是放大400%下的效果

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.2.jpg" width=489 border=0>

这步可以称为单色处理,要在程序中实现这步功能的代码如下

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.1.gif" width=667 border=0>

现在来处理干扰点了

这里的干扰点比较少,基本又是单独存在的,处理起来就更简单了。判断某个点上下左右8个位置有几个点是黑点就基本上可以判断了。下面是处理后的效果:

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.3.jpg" width=506 border=0>

代码:

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.4.gif" width=649 border=0>

处理到这里,1-4的干扰基本被去除了。

下面开始截取字符(对应第5点),我这里使用了一个并不完美的办法,先获取每个字符的左右范围,再获取这个字符的上下范围,这样字符所在的矩形框就出来了,这里使用的字符太工整了,接下来识别没什么难度了;

范围确定以后的效果如下:

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.6.jpg" width=484 border=0>

代码限于篇幅,这部分代码就不贴了。

到目前为止,第6-7点还没有被提及,这就是该特征码难度较高的部分。

比如开头的9张样本中,第2、3行的第三张用默认的单色算法完成以后太失真了

其次字符连在一起给分析字符位置(至少是目前的处理方法)带来很大的难度,下面是2个典型的例子:

CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.8.jpg" width=576 border=0> CSDN.net/images/p_blog_CSDN_net/Qqwwee_Com/176332/r_index.9.jpg" width=572 border=0>

这些都要优化算法。

 
 
   
 
网上赚钱申请指南
 

友情链接
个人主页
 
 
 
 

wel come to . 欢迎光临
宇宙浪仔