php实现验证码识别-中级篇

逸学堂 2009-03-10 11:14:47
这篇文章是
http://topic.csdn.net/u/20090303/15/0bec0070-e387-4611-aac8-721df3207b33.html
的继续。
php识别验证码初级篇,只提供了针对特定位置,特定字体的数字验证码识别技术。本篇文章尝试识别旋转字体,字符粘连的数字和字母的验证码,同时还进一步增强了去杂点功能,增加了bmp转jpeg的功能,还增加了学习功能(需要手工支持)。
在上篇文章<php实现验证码的识别(初级篇)>中,讲了如何识别简单的验证,这里的简单只的是验证码有数字和字母组成,格式统一,每次出现位置固定。这篇文章将继续深入研究识别验证码,这次识别的目标是,验证码有字符和数字组成,验证码存在旋转(可能左右都旋转),位置不固定,存在字符与字符之间的粘连,且验证码有更强的干扰素。这篇文章讲解的方法,并不是万能的解决方案,并且提供代码不能直接解决你的问题,这里仅仅是方法,具体需求读者自己解决,需要说明的是,识别验证码与具体的编程语言无关,这里只是使用php语言实现,使用这里介绍的方法,你可以使用任何语言实现。

这篇文章逐步讲解识别验证码过程中的各个步骤。


如上图,随后的讲解我们都围绕此图展开。
一:拿到一个验证码的,第一眼我们首先要做的工作是,二值化。把验证码的部分用1表示,背景部分用0表示出来,识别方法很简单,我们打印出验证码正张图片的RGB,然后分析其规律即可,通过RGB码,我们很容易分辨出上面这张图片的R值大于120,G和B的值小于80,所以依据这个规则我们很容易把上面的图片二值化。再看初级篇中识别的两张图

刚看上去,感觉很复杂。验证码的图片每次背景色都不相同,且不是单色,各个验证码数字的颜色每次也各不相同。貌似很难二值化,其实我们打印出其RGB值很容易就发现。无论验证数字颜色如何变化,该数字的RGB值总有一个值小于125,所以通过如下判断

原文URL: http://blog.csdn.net/ugg/archive/2009/03/09/3972368.aspx
代码下载:http://download.csdn.net/source/1084418

欢迎拍砖
...全文
14697 193 打赏 收藏 转发到动态 举报
写回复
用AI写文章
193 条回复
切换为时间正序
请发表友善的回复…
发表回复
davenfox 2012-09-27
  • 打赏
  • 举报
回复
正关注这方面内容
a317275186 2012-09-26
  • 打赏
  • 举报
回复
现在好寂静!
liangphy 2012-09-09
  • 打赏
  • 举报
回复
好文章,支持一下
wyfytangsh 2012-09-05
  • 打赏
  • 举报
回复
验证码好处多多啊,可以防止垃圾留言。。也可以防止别人暴力破解密码
游牧小小诗人 2012-08-24
  • 打赏
  • 举报
回复
改明儿就有人弄个,让你用鼠标跟随图画箭头完成简单画图通过验证的方法。
wzl610 2012-08-17
  • 打赏
  • 举报
回复
很不错,学习了
lbyyy 2012-07-30
  • 打赏
  • 举报
回复
又一种识别思路!好!
Get2013 2012-07-12
  • 打赏
  • 举报
回复
感谢楼主提供源码啊
Get2013 2012-07-12
  • 打赏
  • 举报
回复
我嘞个擦 真牛B
  • 打赏
  • 举报
回复
天天是
angelfly5262011 2011-11-22
  • 打赏
  • 举报
回复
用c语言写破解验证码的程序会比较好吗?
drise123 2011-11-07
  • 打赏
  • 举报
回复
那我给你提供代码吧
http://www.111cn.net/phper/php-gj/33429.htm
xiaohei1982000 2011-11-01
  • 打赏
  • 举报
回复
大家好,http://topic.csdn.net/u/20111031/18/71dcaf96-59bd-49d7-9e0c-435134bb3b51.html?seed=922647640&r=76262639#r_76262639 这个帖子看看能有办法帮忙解答下吗?此外咨询下ems的验证码能不能不用识别直接用php实现免验证码呢?谢谢。
ZeoJon 2011-09-26
  • 打赏
  • 举报
回复
LZ的下捏
csusnb 2011-09-24
  • 打赏
  • 举报
回复
牛 长 长 学习了。
wulingwang 2011-09-02
  • 打赏
  • 举报
回复
好帖!
congyufei 2011-07-12
  • 打赏
  • 举报
回复
学习了。
tyfee 2011-07-09
  • 打赏
  • 举报
回复
期待高级篇!
cbcfrank 2011-07-04
  • 打赏
  • 举报
回复
拜读此贴,日子已过了两年
  • 打赏
  • 举报
回复
学习了
加载更多回复(155)

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧