java tess4j训练库_Java 验证码识别库 Tess4j 学习

java tess4j训练库_Java 验证码识别库 Tess4j 学习Java验证码识别库Tess4j学习【在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下学习过程及遇到的一些问题。】步骤:需要在步骤一的tessdata文件中加入相关语言包(训练文件),在这里下载:https://github.com/tesseract-ocr/tessdata,如果是简…

大家好,又见面了,我是你们的朋友全栈君。

Java 验证码识别库 Tess4j学习

【在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下学习过程及遇到的一些问题。】

步骤:

需要在步骤一的tessdata文件中加入相关语言包(训练文件),在这里下载:https://github.com/tesseract-ocr/tessdata ,如果是简单的英文数字验证码,下载 eng.traineddata然后放到文件夹里即可,中文的是chi开头的traineddata。

导入相关依赖,maven相关依赖如下:

junit

junit

3.8.1

test

net.java.dev.jna

jna

4.2.1

net.sourceforge.tess4j

tess4j

4.1.1

com.sun.jna

jna

4,编写相关代码(自测可正常运行):

packageyanZhengMaTest.pikachu;importjava.io.File;importnet.sourceforge.tess4j.Tesseract;importnet.sourceforge.tess4j.TesseractException;public classTest {public static voidmain(String[] args) {//验证码图片存储地址

File imageFile = new File(“C:\Users\pc\Desktop\1.gif”);if(!imageFile.exists()){

System.out.println(“图片不存在”);;

}

Tesseract tessreact= newTesseract();

tessreact.setDatapath(“F:\Program Files (x86)\Tesseract-OCR\tessdata”);

String result;try{

result= “测验结果:” +tessreact.doOCR(imageFile);

System.out.println(result);

}catch(TesseractException e) {

e.printStackTrace();

}

}

}

出现异常及处理:

(本人因为开始的时候没用maven导入依赖,自己去下载了各种网上要的jar包去导入,遇到了一堆问题,最后卡在了Invalid memory access这个异常上,后来通过换成maven项目并解决了异常)

A.【Exception in thread “main” java.lang.Error: Invalid memory access:】

如果出现类似于 Invalid memory access的异常

(1). 首先你先确定JAVA代码中:

tessreact.setDatapath(“F:\Program Files (x86)\Tesseract-OCR\tessdata”);

这里的地址要填你步骤一下载的tessdata文件夹地址。

(2). 如果地址无误,那可能是你tess4j依赖的版本太低,需重新导入依赖,在pom中修改即可。

B.【Exception in thread “main” java.lang.UnsupportedClassVersionError: net/sourceforge/tess4j/Tesseract:】

发生该异常的原因是JDK版本低于1.7,使用1.7以上即可解决问题。

C.【出现图片非法异常】:可能是你图片有问题,换张图片试试,下载的图片不要去修改它的后缀,否则也可能报错。

痛的领悟:

不要直接用java项目自己去导入相关jar包,直接用maven项目去加入依赖包就好,否则可能会出现一堆莫名其妙的异常,个人觉得是因为maven项目依赖包导入时还会导入其他jar包,java项目则需要自己去补增一些jar包,在此建议用maven。

附:

可识别验证码示例:http://es.bnuz.edu.cn/checkcode.aspx?0.33556625493951997/

内容来源于网络如有侵权请私信删除

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139771.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浮点数规格化表示例题_浮点数规格化阶码表示

    浮点数规格化表示例题_浮点数规格化阶码表示一、浮点数的表示格式浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度。阶码:阶码是整数,阶符和m位阶码的数值部分共同反映浮点数的表示范围及小数点的实际位置,常用移码或补码表示。IEEE754标准中采用移码的表示形式。尾数:数符表示浮点数的符号,尾数的数值部分的位数n反映浮点…

    2025年6月15日
    5
  • MySQL常用命令大全(完整)「建议收藏」

    MySQL常用命令大全(完整)「建议收藏」打开Linux或MacOS的Terminal(终端)直接在终端中输入windows快捷键win+R,输入cmd,直接在cmd上输入1、mysql服务的启动和停止netstopmysqlnetstartmysql启动失败可按快捷键win+R,输入services.msc,找到MySQL服务器的名称启动2、登陆mysqlmysql(…

    2022年6月30日
    25
  • SM4加密解密_iunlocker解锁网站

    SM4加密解密_iunlocker解锁网站最近工作需要用到SM4加密解密算法,所以研究了一下。内容主要参考自:https://blog.csdn.net/weixin_34411563/article/details/86000381首先介绍一下SM4加密算法SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的。http://www.cnnic.net.cn/jscx/mixbz/sm4/,具体的加密很麻…

    2022年10月6日
    2
  • Vue上传图片_实现线程的四种方式

    Vue上传图片_实现线程的四种方式项目中需要上传图片可谓是经常遇到的需求,本文将介绍3种不同的图片上传方式,在这总结分享一下,有什么建议或者意见,请大家踊跃提出来。没有业务场景的功能都是耍流氓,那么我们先来模拟一个需要实现的业务场景。假设我们要做一个后台系统添加商品的页面,有一些商品名称、信息等字段,还有需要上传商品轮播图的需求。我们就以Vue、Element-ui,封装组件为例子聊聊如何实现这个功能。其他框架或者不用框架…

    2022年8月15日
    8
  • JQuery学习—JQuery的Validform学习

    JQuery的Validform学习

    2022年2月24日
    51
  • 加密和解密

    加密和解密

    2021年6月14日
    114

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号