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]联系我们处理,如需商业授权请联系原作者/原网站。

java tess4j mave_Java 验证码识别库 Tess4j 学习相关推荐

  1. Java 验证码识别(Tess4J初体验)

    Tess4J官方描述:A Java JNA wrapper for Tesseract OCR API. demo下载 1.先去官网下载:http://tess4j.sourceforge.net/ ...

  2. java验证码识别库

    java验证码识别库 使用J4L识别验证码 使用 Tess4J 进行 OCR 识别 使用J4L识别验证码 将解压文件下bits64目录的三个文件 liblept168.dll tess3Wrapper ...

  3. 图形验证码开源库 Tess4J 的使用

    实际应用中,为了保护重要接口,防止用户恶意攻击或穷举破解,在发送业务请求时生成图片验证码,要求人工识别并填写,一并提交给后台验证,以确保是人为请求.图形验证码开源库 Tess4J 生成的图片验证码还有 ...

  4. 验证码识别(Tess4J初体验)

    遇到一道机试题 当时就懵逼了0.0查了好多资料,大体知道了基本的步骤:1.预处理 2.灰度化 3.二值化 4.去噪 5.分割 6.识别 还好题目要求不严格,可以使用开源程序.机智的我还真找到一个:Te ...

  5. python验证码识别库_Python验证码识别

    注意:若使用云服务器 (Windows Server版) 遇到闪退,请按照步骤:我的电脑--属性--管理--添加角色和功能--勾选桌面体验,点击安装,安装之后重启即可. 2020/06/01编外: 想 ...

  6. java 12306验证码识别_GitHub - sunqipeng-cn/JavaVerify: 用java 编写的验证码识别

    基于惯性大水滴滴水算法和支持向量机的验证码识别 Inertial big drop fall algorithm, libsvm Introduction: Functions: 1.Download ...

  7. python 验证码识别库_python验证码识别

    写爬虫有一个绕不过去的问题就是验证码,现在验证码分类大概有4种:图像类 滑动类 点击类 语音类 今天先来看看图像类,这类验证码大多是数字.字母的组合,国内也有使用汉字的.在这个基础上增加噪点.干扰线. ...

  8. python验证码识别库底色深_基于机器学习的验证码识别

    基于机器学习的验证码识别 目录说明 ├── . ├── catpcha_images 验证码采集存储目录 ├── thred_images二值化图片存储目录 ├── noised_images降噪图片 ...

  9. java 爬中 验证码识别_JAVA爬虫---验证码识别技术(一)

    Python中有专门的图像处理技术比如说PIL,可以对验证码一类的图片进行二值化处理,然后对图片进行分割,进行像素点比较得到图片中的数字.这种方案对验证码的处理相对较少,运用相对普遍,很多验证码图片可 ...

最新文章

  1. 迭代器、代码块、闭包
  2. apt get 安装mysql5.7_ubuntu18.04中安装mysql(5.7)步骤详细介绍
  3. boost::graph模块实现斐波那契堆的测试程序
  4. 华为上机考试题系列(一):牛客网的奇葩操作
  5. 关于Ubuntu的默认python版本
  6. 我是如何把 Java 项目移植到 .NET 5.0 的
  7. 集美大学诚毅学院计算机科学与技术学费,集美大学诚毅学院计算机科学与技术专业介绍...
  8. pfSense-2.4.4安装教程
  9. 【转】重装Ubuntu时如何保留/home分区中的数据
  10. css媒体查询和居中
  11. 葡萄柚能放冰箱保存吗 葡萄柚怎么保存时间长
  12. 自己做的js甘特图插件
  13. Android使用Downloadmanager进行下载时,鉴别取消下载和下载完成的广播
  14. 压缩比13为什么建议用92的油_纯干货|马自达发动机13:1压缩比,却可以烧92号油,为何不爆震?...
  15. 【数据挖掘】葡萄酒质量分析及异常值检测
  16. jmeter分布式执行远程机报错,提示“Engine is busy – please try later”
  17. Python学习笔记(八)爬虫基础(正则和编解码)
  18. 传输层2 --- 传输层复用和分用
  19. [OpenCV实战]10 使用Hu矩进行形状匹配
  20. 从键盘输入10个正负相间的整数,输出个位数是奇数、十位数是偶数的所有数。

热门文章

  1. 关于洛谷和其他oj网站的使用感受
  2. html input菜鸟,HTML input 标签 | w3cschool菜鸟教程
  3. ltc4054充电保护电路详解
  4. 【调剂】2021年东南大学无锡校区相关专业调剂信息
  5. 梦幻西游python验证成语,Python爬取成语信息
  6. 免费就业推荐与招聘,只为聚人气——2008年8月开放职位汇总
  7. iOS8定位代理方法不回调解决方法
  8. android 框架framework hidl与ril service映射关系
  9. 20秒 一键配置 VSCode (Visual Studio Code) C/C++开发环境
  10. CSS 格式化上下文详解