来源:
编程中国
作者:
若水
2008-04-15/16:05
在网上看了会资料,稀里糊涂的,就自己想试试
此主题相关图片如下:
初看,这个网站的验证码很醒目(背景为黑,前景为白),没有什么混淆视觉的东西.
于是,我就抓了图片在画图程序中放大8倍分析.
找到如下规律.
验证码从左边第4个像素点开始 每个宽度为8,上边第3个像素点开始,高度为9
相互间间隔一个像素.
于是我就想把验证码所在的矩形区域的所有像素点的颜色取出来做成模板.
(把图片放在picture1控件中,然后用picture1.point来读取)
然后与下载后的图片比较,没想到比较后一个也找不到,
调试发现它的前景白色并不是固定不变的,有小范围的波动.
如233 255 250 之类的,还有一些颜色很淡的杂点.
于是我就这样判断.当像素点的RGB的B值在100以上的为1.以下的为0
(它们的RGB都相同.如 23,23,23 233,233,233)
这样采集数据,做成模板. 0.dat-8.dat 没发现数字9
不过以防万一,当在所有模板中没找到相同特征的就为9.
最后,测试成功.一秒钟就识别出来了.
此主题相关图片如下: