火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 86135|回复: 201

规则教程之八58图片识别,验证码识别插件原理

[复制链接]
发表于 2011-2-19 00:44:12 | 显示全部楼层 |阅读模式
这是我最近研究的,其实网上也有各种识别代码,因为最近遇见58同城又一次的升级了防采集系统,以前的规则全部挂掉了。多页采集下来的号码全是110,NND 58同城这是在挑衅我们采集的人啊,所以决定研究图片识别,此图片识别原理不仅可以识别58的图-片-电-话,还可以识别其他的图-片-电-话验证码,甚至是汉字。本文仅就原理与大家分析,因为核心代码和思想不是我本人的。只是通过读别人的代码 理解原理用通俗的语言写给大家
首先谈下图-片的构成在计算机里图-片是用RGB表示的。具体如何表示问百度。
分别是三个255 255 255的值。具体颜色什么值可以继续查百度,就不在这里科普了
来个实例
  1. http://wap.58.com/ImageResize.JPG?w=100&h=30&c=4868893903106
复制代码
这个是58同城的一个WAP地址的手-机-电-话-图

用任何一款图-片编辑软件打开可以看到背景是白色的,我们暂时称之为背景色。文字是红色的 我们这里称之为前景色
我们要的 就是前景色的信息。我们可以这样看,如果背景色全是数字0前景色都是数字1那么很容易的可以看出这个图-片上面的前景色表示的是什么数字。
如图

如果你看不出这个是什么数字....你就距离屏幕远一些,就可以很清楚的看出来是什么数字了,当然是这个电-话-号-码了。因为做的就是-电-话-号-码-么
通过对这组数的处理就可以达到好的效果下面我详细说下步骤。将用很通俗的语言,尽量不用术语
一、图片的数字化,就是二值化把图片编程0和1组成的数组。
详细说下原理 前景色和背景色前面提到了。都是RGB的值通过不同的RGB的值按照像素点把图片数字化。红色的RGB的值和白色一定是不一样的。
二、建立字模
二值化后,可以建立识别字的模型。那么什么是模型那 来看附图

看不清的点击图放大就好了。红色框的就是每个数字的字体模型,理论上说如果图片上某个数字的形态是一样的话,那么字体模型也是一页的。
三、字体模型与原图的匹配
得到字体模型以后就可以做匹配了。首先要对原图二值化的数字矩阵分组。每个字都有高度和宽度,字间距,可以按照这个通过操作数组把不同位数的字取出来,与做好的字模进行匹配。
四、去除干扰,与验证码相比,图片的电-话还是比较好做的,至少没有干扰点和杂色。
如果想去除干扰也很简单。我将干扰分为两类。一类是杂点,就是图片上的小点点,这个再电-话图片上还没有遇见过,在一个就是连续的这个很常见。在58里很多都是这样的比如0571-12345678中间的-就是需要处理的。当然-也可以匹配下
就58同城的WAP页的电-话图片这是我按照以上方法做的效果

这就是效果,在制作的过程中要注意XY轴上的空白0这个可以通过循环排除掉的。不同的网站的图片是不一样的,字模当然也不一样,所以如果写识别不同网站一般是不同的。当然这个思想也可以用在验证码上。其他简单的图片识别上。如果有汉字我个人建议用别人做好的识别接口。结合这个再验证码以及图片识别方向就会有很多的扩展。比如输入验证码后才可见的。

因为不同网站的字模以及很多参数都不同。我附件附上了根据此种思想设计的程序。这个程序在论坛里也发过。
本文仅作算法以及程序思想的讲解,具体问题具体分析。欢迎在这领域研究的朋友或用到识别的朋友与我联系QQ 1754-7523

晚些时候已经将这个程序做成火车采集器的插件了。因为.NET实在是不会 VS装个也特别大我笔记本承受不了啦。还是PHP把,做成PHP插件了。效果还是可以的
  1. http://wap.58.com/ImageResize.JPG?w=100&h=30&c=4877859529731
复制代码



写程序在乎算法,只要算法和思想有,您用什么语言表述。用什么语言开发这个都没任何关系。本文仅作算法与思想的讨论,附件是按照本算法实现的一个例程。源于网络。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入会员

x

评分

2

查看全部评分

发表于 2011-2-19 12:52:57 | 显示全部楼层
厉害,还看不懂
发表于 2011-2-19 13:13:48 | 显示全部楼层
本帖最后由 专业收费采集 于 2011-2-19 13:15 编辑

年前也在研究这个,转载到我的博客去了
发表于 2011-2-19 14:01:46 | 显示全部楼层
不错。支持两下
发表于 2011-2-19 14:22:12 | 显示全部楼层
这个感觉挺有难度的吧。学习下复杂点的插件。
发表于 2011-2-19 16:08:15 | 显示全部楼层
顶一个。。。。 了
发表于 2011-2-19 17:27:02 | 显示全部楼层

过来看看
发表于 2011-2-19 17:46:35 | 显示全部楼层
有没有方案解决的,给个地址
发表于 2011-2-19 17:54:20 | 显示全部楼层
有没有方案解决的,给个地址
发表于 2011-2-19 17:57:05 | 显示全部楼层
进来看看!是什么东西还不明白!
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2026-3-31 07:02

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表