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)
上一篇 2022年5月29日 上午10:00
下一篇 2022年5月29日 上午10:00


相关推荐

  • 红黑树与平衡二叉树的区别?

    红黑树与平衡二叉树的区别?红黑树的性质 1 节点是红色或黑色 2 根节点是黑色 3 每个叶子节点都是黑色的空节点 NIL 节点 4 每个红色节点的两个子节点都是黑色 从每个叶子到根的所有路径上不能有两个连续的红色节点 5 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点 这些约束强制了红黑树的关键性质 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长 结果是这个树大致上是平衡的 因

    2026年3月26日
    3
  • 费尔马小定理素数java_利用费马小定理判断素数

    费尔马小定理素数java_利用费马小定理判断素数今天听了 ljss 神犇的数论课 顿时感觉 我真的是太弱啦 我只能稍微写一下我能听懂的部分 orz 那么这就是今天我为数不多能听懂一点的之一 QAQ 首先先介绍今天的主角 费马小定理 转自维基百科没看懂的话我稍微解释一下 就是假如 p 是质数 且 GCD a p 1 那么 a p 1 1 modp 假如 p 是质数 且 a p 互质 那么 a 的 p 1 次方除以 p 的余数恒等于 1 因此我们

    2026年3月16日
    2
  • centos7系统更新命令_centos 更新

    centos7系统更新命令_centos 更新1.查看网络IP ifconfig2.下载命令 wget+网址3.安装 yum-y install + 目标4.删除文件 sudo rm 文件所在目录/目标强制删除文件 rm -f删除目录 rm -rf5.复制一个文件到另一个文件夹sudo cp /文件夹/文件 /另一个文件夹6.对一些文件进行读写sudo vim 文件名7….

    2022年8月19日
    14
  • Android开发环境搭建(图文教程)

    Android开发环境搭建(图文教程)

    2021年11月28日
    40
  • ES5和ES6区别

    ES5和ES6区别练习 ES5 和 ES6 区别

    2026年3月20日
    3
  • 搜索中的深度匹配模型

    搜索中的深度匹配模型文章作者 辛俊波腾讯高级研究员编辑整理 HohXil 内容来源 作者授权出品平台 DataFunTalk 注 欢迎转载 转载请在留言区留言 导读 在上

    2026年3月16日
    2

发表回复

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

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