网站大量收购独家精品文档,联系QQ:2885784924

JAVA识别图形验证码.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA识别图形验证码

最近一直在开发一个用于自动发帖的工具,用HttpClient模拟客户端浏览器注册发帖。但是碰到了图形验证码的问题了,对单数字的验证码,通过一些OCR引擎,如:tesseract,AspriseOCR很容易解决问题。但碰到如CSDN论坛这中图形验证码就比较麻烦,必须先通过预处理。使图象二值化,黑白灰度,增加亮度。我的代码如下: [java]?view plaincopy package?myfilter;?? import?java.io.*;?? import?java.awt.image.*;?? import?java.awt.geom.AffineTransform;?? import?java.awt.color.ColorSpace;?? import?java.awt.image.ConvolveOp;?? import?java.awt.image.Kernel;?? import?java.awt.image.BufferedImage;?? import?javax.imageio.ImageIO;?? import?java.awt.Toolkit;?? import?java.awt.Image;?? /**? ?*? Title:?Image?Filter *? ?*? Description:?image?processing?by?filters *? Copyright:?Copyright? c ?2010 *? ?*?@author?gl74gs48@163.com? ?*?@since?jdk1.5.0? ?*?@version?1.0? ?*/?? public?class?MyImgFilter BufferedImage?image; private?int?iw,?ih; private?int[]?pixels; public?MyImgFilter BufferedImage?image this.image? ?image; iw? ?image.getWidth ; ih? ?image.getHeight ; pixels? ?new?int[iw?*?ih]; /**?图像二值化?*/ public?BufferedImage?changeGrey PixelGrabber?pg? ?new?PixelGrabber image.getSource ,?0,?0,?iw,?ih,?pixels,0,?iw ; try pg.grabPixels ; catch? InterruptedException?e e.printStackTrace ; //?设定二值化的域值,默认值为100 int?grey? ?100; //?对图像进行二值化处理,Alpha值保持不变 ColorModel?cm? ?ColorModel.getRGBdefault ; for? int?i? ?0;?i? ?iw?*?ih;?i++ int?red,?green,?blue; int?alpha? ?cm.getAlpha pixels[i] ; if? cm.getRed pixels[i] ? ?grey red? ?255; else red? ?0; if? cm.getGreen pixels[i] ? ?grey green? ?255; else green? ?0; if? cm.getBlue pixels[i] ? ?grey blue? ?255; else blue? ?0; pixels[i]? ?alpha? ?24?|?red? ?16?|?green? ?8?|?blue;?//通过移位重新构成某一点像素的RGB值 //?将数组中的象素产生一个图像 Image?tempImg Toolkit.getDefaultToolkit .createImage new?MemoryImageSource iw,ih,?pixels,?0,?iw ; image? ?new?BufferedImage tempImg.getWidth null ,tempImg.getHeight null ,?BufferedImage.TYPE_INT_BGR? ; image.createGraphics .drawImage tempImg,?0,?0,?null ; return?image; /**?中值滤波?*/ public?BufferedImage?getMedian PixelGrabber?pg? ?new?PixelGrabber image.getSource ,?0,?0,?iw,?ih, pixels, 0,?iw ; try

文档评论(0)

zilaiye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档