用Java做一个验证码识别的程序,要识别的验证码:http://group.bj.chinamobile.com/edsmp/ValidateNum
用Java做一个验证码识别的程序,要识别的验证码:http://group.bj.chinamobile.com/edsmp/ValidateNum要求能根据验证码图片,...
用Java做一个验证码识别的程序,要识别的验证码:http://group.bj.chinamobile.com/edsmp/ValidateNum
要求能根据验证码图片,识别出验证码图片上的数字。
要识别的验证码图片如下: 展开
要求能根据验证码图片,识别出验证码图片上的数字。
要识别的验证码图片如下: 展开
5个回答
展开全部
验证码识别,费力效果差,除非非常简单的图片,否则极难识别,而且验证码图片的代码,人家只需要稍微弄复杂点,识别的复杂度直线上升,成功率直线下降。像hotmail, google, yahoo那种就直接放弃,
不过像这种简单的,你可以试试,用模式匹配:
例如单个数字大小是16 * 16像素, 那就划分成16*16块,每个块1个像素,编号,特征就是a[0][0] - 白, a[0][1] - 白, a[0][2]黑……这种,存下来,把要识别的图片上的数字,也这样处理,然后跟保存下来的特征码进行匹配就行了,看看有多少是一样的,超过50%就可以认为找到了,或者把阈值设更低点
难点在于要识别的图片上面有干扰点,要排除,以你给出的图片来说,可以这样:
1. 先统一黑白:如果一个像素跟白色很接近,就认为是白色,否则认为是黑色。(如果底色是随机的,那就把区域色块最大的认为是白色,其他的黑色)
2. 每个像素周围有8个像素,计算出这个区域内的平均灰度,例如这9个点中超过4个是黑色,那就认为这个像素是黑色
不过像这种简单的,你可以试试,用模式匹配:
例如单个数字大小是16 * 16像素, 那就划分成16*16块,每个块1个像素,编号,特征就是a[0][0] - 白, a[0][1] - 白, a[0][2]黑……这种,存下来,把要识别的图片上的数字,也这样处理,然后跟保存下来的特征码进行匹配就行了,看看有多少是一样的,超过50%就可以认为找到了,或者把阈值设更低点
难点在于要识别的图片上面有干扰点,要排除,以你给出的图片来说,可以这样:
1. 先统一黑白:如果一个像素跟白色很接近,就认为是白色,否则认为是黑色。(如果底色是随机的,那就把区域色块最大的认为是白色,其他的黑色)
2. 每个像素周围有8个像素,计算出这个区域内的平均灰度,例如这9个点中超过4个是黑色,那就认为这个像素是黑色
展开全部
有方法可以实现的,以前做过,比较复杂,你可以到网上搜索一下相关的技术原理。
记得当时是,先将图片编程黑白的,然后 去除干扰线,然后应图片识别的类识别图片上的字符串。。。。。。
记得当时是,先将图片编程黑白的,然后 去除干扰线,然后应图片识别的类识别图片上的字符串。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你必须提供0-9的图片
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
验证码之所以要搞成图片,就是为了不让你简单就识别了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
识别码只是图片 如果要知道识别码的内容 必须攻击后台哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询