12306 验证码识别问题 本帖最后由 hncdyj 于 2012-11-20 17:19:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不會,我是來要軟件的,說真的感覺java寫這個不如net的快 给我一个吧邮箱:[email protected] 来一个亲~ [email protected] 非得用Tesseract-OCR吗?据观察,12306的验证码中的字母的位置是固定的,先拉取1000次验证码图片出来,看看规律,然后为每一个数字和字母做出一个模板以后识别的时候直接将验证码图片分割,然后跟模板比对即可 作为干过此类事情的人,推荐两个东西:1、开源的Java图像处理工具,它提供了图像初始处理常用的 锐化、过滤、模糊、去背景 等能力,且各种参数均可自行调整: http://www.jhlabs.com/ip/filters/index.html2、自建匹配字库,不过这比较累;你顶楼的第一张黑白图片,如果你自建字库的话,其实差不多可以99%以上的识别率了;不过其实即便不自建字库,你第一张黑白图片,我觉得也没啥道理不能识别这个是之前做过的,也是用通用字库搞的,没有自建字库。 关键我不是做swing方面的图像识别。 [email protected]求!屌丝无法坐飞机…… 练习下,高手也是从垃圾进化滴 你想想当年自己编程 if else 还不是那样子敲出来滴 高手能不能写个java程序去掉铁道部验证码的背景同时不影响到上面的验证字符? 楼主好人一枚[email protected]谢谢分享 回家,求代码。。 [email protected] 以下留邮箱的不再提供源码!自己去google code上面去下载。 LZ大侠,我想试用一下,邮箱:[email protected] http://www.cnblogs.com/xiaotie/archive/2009/01/15/1376677.html [email protected] 跪求!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .net 有人研究个这个。图像识别练习(字符验证码、车牌号、身份证号) - 野比 - 博客园 [email protected],楼主给哦发个吧,学习学习。 楼主,我导入session的时候提示导入错误啊! [email protected] 楼主 今年过年就靠它了! 导入session是用foxfrie登录上了用firebug 知道cookie才导入滴。哎!看样子要出一份详细文档。 帮我解决这个问题,那你的验证码毫无压力,因为我现在做的就是将验证码识别移植到java,但出现了点小问题。详见帖子 http://bbs.csdn.net/topics/390295547 求源码 哪里有下载啊?[email protected] 楼主辛苦了!!![email protected] http://bbs.csdn.net/topics/390269242?page=1#post-392825144 这里有下载的 楼主你的二值化int grey = 100,改成120的话能提高一半的识别。 我还是觉得类似这种问题如果有现成的直接可以用最好,像15楼mice提供的那种,现成的不理想才自己想办法。 我觉得你过滤出黑白图以后,可以这样处理干扰线验证码识别如果识别率都是100%,那验证码也就没存在的必要了。其实很多验证码能达到10%的识别率就不错了。下面来一个稍微复杂一点的,识别率85%左右。看验证码挑一张来看放大看,我们会发现干扰线是纯黑色的,因此去干扰线的方法就有了对点color[i][j],如果color[i+1][j],color[i-1][j],color[i][j+1],color[i][j-1]都是纯黑或者纯白色的,就认为color[i][j]是干扰,将color[i][j]置为白色。处理之后这样就简单了,分割也简单。 识别结果完整eclipse工程http://download.csdn.net/detail/problc/3829004 我觉得gray设置的过低,虽然把干扰线给过滤掉了!但是相应的有部分字体颜色也不清晰了。所以gray设置搞点可以看到完整的字体信息,同时留有部分干扰线!应为干扰线是横穿的整个字体的。其中和字体完全重叠的地方不用去管他,只需要把没有穿过字体的过滤掉,这部分干扰线大多数都是上下为白色而自身为黑色。这样过滤以后的图片应该识别率会提升一些! [email protected] 谢谢楼主 楼主 我爱你 [email protected] 一定要看到啊 楼主你google上面的代码是不是最近都没有更新啊! lz更新下google code吧,想测试了解下都调不通。 commons-logging-1.1.1.jarfilterbuilder.jarhtmllexer.jarhtmlparser.jarhttpclient-4.2.2.jarhttpcore-4.2.2.jariaik_jce.jarjai_imageio-1.1-alpha.jarlog4j-1.2.16.jarregistry.jarsitecapturer.jarslf4j-api-1.5.8.jarslf4j-nop-1.5.8.jarswingx-1.0.jarthumbelina.jar 我用的eclipse 引入了这些jar包,可能有些没用但是引入这些应该没有问题! 我是用的maven管理的项目,这些包你可以在google code 下载一个版本 版本里面的lib有这些包,google code代码已经更新了。 我加了一个登陆以后弹出带cookie的连接,用IE打开。这样可以让大家订到票直接付款,省的人多的时候从浏览器登录不进去造成45分钟之后票自动退掉的问题! 这个不是重点 到时候写个文档教别人用firebug写入程序的cookie就行了,重点是全天守候自动订票,没有这功能这软件就只能整点抢票,意义不是太大。 习惯了用maven管理项目,我现在运行都是可以订到票的,session导入是准备用在铁道部高峰期的时候,提前用foxfire登录,用firebug拿到cookie了抢票的。 这个没事 等快要回去滴时候重新写一下就行了。随便它怎么改 总体流程还是不会变, 代码依旧那么水,一个界面都能看到几个人的风格 还用过时的struts1.x框架 丢人阿。 list中如何判断相同值的个数? 线程锁的问题 java判断邮件格式是否正确? 抽象类可以这样用吗? java 不用配置环境变量 初学基础作业里一个抽象类构造方法的问题,我这个写不出来,所以也不能compile jsp中一些指令问题 JAVA编译器的注册码问题 数据库关闭异常 有没有人知道ConsoleReader这个包在什么地方可以找到!本人非常需要. 容器的相关问题 java线程同步问题
邮箱:[email protected]
作为干过此类事情的人,推荐两个东西:
1、开源的Java图像处理工具,它提供了图像初始处理常用的 锐化、过滤、模糊、去背景 等能力,且各种参数均可自行调整:
http://www.jhlabs.com/ip/filters/index.html
2、自建匹配字库,不过这比较累;你顶楼的第一张黑白图片,如果你自建字库的话,其实差不多可以99%以上的识别率了;不过其实即便不自建字库,你第一张黑白图片,我觉得也没啥道理不能识别
这个是之前做过的,也是用通用字库搞的,没有自建字库。
[email protected]
谢谢分享
[email protected]
图像识别练习(字符验证码、车牌号、身份证号) - 野比 - 博客园
看样子要出一份详细文档。
详见帖子
http://bbs.csdn.net/topics/390295547
[email protected]
[email protected]
验证码识别如果识别率都是100%,那验证码也就没存在的必要了。其实很多验证码能达到10%的识别率就不错了。下面来一个稍微复杂一点的,识别率85%左右。看验证码挑一张来看放大看,我们会发现干扰线是纯黑色的,因此去干扰线的方法就有了对点color[i][j],如果color[i+1][j],color[i-1][j],color[i][j+1],color[i][j-1]都是纯黑或者纯白色的,就认为color[i][j]是干扰,将color[i][j]置为白色。处理之后这样就简单了,分割也简单。 识别结果完整eclipse工程http://download.csdn.net/detail/problc/3829004
所以gray设置搞点可以看到完整的字体信息,同时留有部分干扰线!应为干扰线是横穿的整个字体的。其中和字体完全重叠的地方不用去管他,只需要把没有穿过字体的过滤掉,这部分干扰线大多数都是上下为白色而自身为黑色。这样过滤以后的图片应该识别率会提升一些!
filterbuilder.jar
htmllexer.jar
htmlparser.jar
httpclient-4.2.2.jar
httpcore-4.2.2.jar
iaik_jce.jar
jai_imageio-1.1-alpha.jar
log4j-1.2.16.jar
registry.jar
sitecapturer.jar
slf4j-api-1.5.8.jar
slf4j-nop-1.5.8.jar
swingx-1.0.jar
thumbelina.jar
没有这功能这软件就只能整点抢票,意义不是太大。