附加码识别引擎[图象智能识别,可下源程序](0分)

  • 主题发起人 主题发起人 genue
  • 开始时间 开始时间
就是找所有图片共有的特征,比如:
所有相同字符都是一个形状的,所有附加码显示的位置是固定的,再加上一些图片处理就可以了。
 
这已经是最最简单的一种图象识别方法了。
 
请问何处可以删贴呀?
 
为什么删啊
 
以前发了一个贴,没人回呀,想结都结不了。
 
有些同志在QQ上与我说,虽然当了我的程序,但还是看不明白,让我作个说明,想一想,也是,我就有个深刻体会,看别人的程序实在有点费神,所以,还是来作个简要说明,再做一件好事吧,加起来应该有1001件了。
直入正题:
要识别图片上的文字,首先要找图片的共同点。咋一看,图片有不同大小、类型,字符有不同字体、字号、颜色,更可恶的是有些附加码还加了干扰,比如随机加了点。
如何找到附加码图片之共同点呢?让我仔细道来(只针对绝大多数附加码):

一、字符集有限,多不过键盘上的可输入符号(好象还没有用东方语言做附加码的),而用的最多最多的就是0~9了。

二、相同字符形状相同。0总是个鸡蛋,1总是一飘扬的旗帜,2总是个鸭子,它不会变成个鸡蛋!

三、附加码长度总是相同。

四、附加码每位字符位置固定。

五、图片大小相同。

有了上面五点就完全可以了。

有人可能会不断地想,那不同的附加码字体字号等等,如果你老是这样想,那你肯定会失败的罗,你想,字体完全可能别人有你没有呀。到那里找那么多字体?相信没有谁有那本事。

现在来一个一个解决问题:

第一步,如何解决图片颜色问题。

想一想,什么样的图片最好处理? 颜色单一! 好了,我们原来的图片首先变成位图(BMP格式),然后把它变成灰度的,然后再把它变成二色的(就是黑与白),好了,现在图片初始化完毕了。

第二步,如何去燥。

如果加了干扰点,如何去掉那该死的随机位置出现的点呢? 你学过位运算吗?什么是与运算? 呵呵,如果你聪明一点,就不用我讲了,看下一条吧。我们把几个相同字符的图片的效部份提出来,然后把这些图片中每一个相同位置的点的颜色相与,给果如何?清清楚楚的字符出来了!眯着眼睛,仔细再想一想,这是为什么? 可能你会晃然大悟,哦,原来最重要的原理在这里!

第三步,如何提取特征码。

其实解决了上述第二点,就已经解决了绝大部份问题。要提取特征码,实质就是找出字符的点阵,把它存起来,就是特征码。

第四步,什么是学习。

学习就是人先给程序一些图片(我的程序中是18张),并告诉它每个图片中的附加码。然后程序开始自动进行处理,得到所有字符有特征码并存起来。具体过程是这样的:
先将图片分为附加码长度个等分,得到几个图片范围,每个范围对应相应的字符,对每个字符与相应特征码的图片点的颜色相与,得到更新的特征码。
将所有的图片进行相同处理,得到最后的特征码,根据概率估计,特征码成功有机率非常高(我还没有遇到过不成功有情况呢,如何出现了,换一些图片重新学习就行了)。然后根据最后的特征码绘出所有字符集图,看看对不对?
多半不对!为什么?因为每一种附加码可能在生成的时候,会在图片上加一个左边界,所以我们还得用一个循环去掉左边界,并调整字符宽度,使之与现实相符。
把每一次分析得到的图片(根据最后的特征码绘出所有字符集图)和参数生成一个HTML文件,展示给使用者,让使用者选一最清楚的,作为最后的识别结果,把参数记下来,再用指定参数生成一次,把特征码存成文件。

第五步,根据特征码识别未知图片。

简单,判断它某一位置是不是某个字符就看相应位置(所有点)是不是都有这个字符的特征就够了。要注意某些字体的3与8的判断哟,所以我用的是一个减循环实现的。

第六步,完了,没有说的了。

随便说一句:大家可以把我的程序做成完全自动识别,不要人选参数决定最后的特征码,想想吧,就算留给大家的一个问题吧。
 
呵呵,厉害,又学了,谢谢!
 
分析图片自动得出附加码是种方法,但我有另外一个思路,为什么不可以分析从服务器传
给IE的信息来得出附加码呢?传来的附加码是图片,那么一幅图片总有个固定的名字吧,
浏览器要正常显示出这幅图,也必须要通过图片名字才知道随机产生的是那幅图,这样,
我们自己搞个图片名和附加码的对映表,就搞定了。
这种方法网站对付的办法只有经常改服务器上附加码图片的名字,不过也只能治标,并且
麻烦。网站还有个办法,对图片名加密,但相应的破解办法也跟着出来了,哈哈。
实际上附加码只能算是把密码加长了几位,让破解程序增大点工作量而已!
防破解还得另想更好的办法才行!现在搞安全的都是些饭桶!
 
这种方法没有什么用呀,

我做的网站登录 密码错误5次, 记录IP,停止登录20分钟。

一天密码错误15次,拒绝该IP,该ID 锁定一天。
 
楼上使用图片名的方法不可取,因为如果图片是用程序生成的(比如PHP的GD库),那就算是同一张图片,会有不同的数字。 而且人家根本可以不用图片名。。

我想如果随机的改变图片的背景,图片的字体,再加上字体效果(如加黑、斜、下划线),还有字体的大小。 那识别的机率就会很小了。

但这个程序还是不错。 谢谢了。
 
对于锁ID, 个人不太赞同, 因为如果别人有意陷害某人, 那某人的ID不是一段时间都不能用。 事实上,这个ID的真正主人并没有猜密码。

我觉得还是应该从识别码上入手。
 
楼上的,我说的是一种思路,不管他有没有图片名,只要浏览器可以识别出显示的是不同的
附加码,我们就可以通过浏览器的原理做个附加码对映表!
 
我来学习一下
 
不明白nutian兄说的浏览器识别出显示的是不同的附加码是什么意思。 “通过浏览器的原理做个附加码对映表” 这个也不是太明白。。 我觉得你对网络脚本语言的理解不对。 如果你用PHP、ASP等写过类似程序。。 你就不会这样说了。
 
chinaren校友录留言的附加码可以是字符的。
 
这方面没有具体搞过,那么forlook兄介绍下你认为最安全的服务器产生附加码,到浏览器显示出来,这个过程的具体步骤吗?
 
各位兄弟,大家好。
自从发此贴以来,我一直在关注大家的想法,我写了此程序,旨在抛砖引玉,知者出献计,不知者学习,如何你仔细读过我的首贴,或读过我的程序,或许会让们们对此了解更深。
提醒forlook兄:
所谓变字体、字号、加粗、倾斜、上下划线之类等等,对我的程序来讲,仅加大特征码和判断时间增长而已,结构不改一样没有问题。


forlook兄对附加码应该是比较了解的了,想必你对ASP或CGI等非常熟悉了,如果有时间做一个通用抗识别的产生附加码的COM组件大家用用如何?做好了肯定会大受欢迎的。
我早想做但时间有点不够。
 
nutian兄的说法的确有些不可理解。
 
学习,真是大侠,还有源码学习
 
后退
顶部