java tess4j mave_Java 验证码识别库 Tess4j 学习

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,编写相关代码(自测可正常运行):

package yanZhengMaTest.pikachu;

import java.io.File;

import net.sourceforge.tess4j.Tesseract;

import net.sourceforge.tess4j.TesseractException;

public class Test {

public static void main(String[] args) {

//验证码图片存储地址

File imageFile = new File("C:\Users\pc\Desktop\1.gif");

if(!imageFile.exists()){

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

}

Tesseract tessreact = new Tesseract();

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/

注意:本文来自博客园精华区。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!

CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件为压缩包,包括多个java识别图片文字的项目,国内网站上资料比较少,项目都整理出了测试类及说明,都包含着源代码及jar包、安装包、训练。希望用得到的人少走弯路,资源都精心整理测试过,高分是必须的。 javaocr项目 纯java程序,国内网站几乎没有见到相关资料。 此项目提供了图形界面的测试类: net.sourceforge.javaocr.main.java javaocr2项目 与以上javaorc属同一项目的不同分支,纯java实现,以下3个测试类请参考。 个人对此项目感觉不错,虽然存在些问题,但是只要训练好,英文和数字识别率很高。 我用此项目把某网站的数字验证码都截了图做成了训练,识别率95%以上,用browserTest简单实现了程序自动登录与各种操作功能。 测试类: TestDemo.java MyDemo.java MyDemo2.java Longan-master项目 此项目也是纯java实现,识别英文和数字效果还不错,国内网站几乎没有任何相关资料。 测试类: com.zarkonnen.longan.Main 使用开发工具,请设置程序输入参数为:-o c:/111.txt c:/entest.png 代表输出文件和识别图片 Java_imagetotext项目 安装tesseract-ocr-setup-3.02.02.exe文件,通过java调用tesseract.exe文件识别图片,输出识别结果 测试类: com.chillyfacts.com.my_main.java 根据实际情况修改输入图片、输出文件名、tesseract.exe文件所在路径 Tess4J-3.4.7项目 知名度最大的java识别程序了。 我的环境是windows7 64位 jdk1.8 64位 各种折腾,痛苦的尝试了各版本,基本都是报模块加载失败,安装上vc_redist.x64_2015.exe后执行成功,但是在xp32位还是没有成功。 测试类: TesseractExample.java 测试英文识别 ChOcr.java 测试中文识别 tesseract3.03项目 测试类: de.vorb.tesseract.example.BasicExample 需要加载libtesseract303.dll 运行后一直报异常,没有搞定,也不打算深究了,遗憾!有人成功了,请分享为谢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值