一,tess4j 简单介绍 Tess4J是对tesseract -OCR API.的Java JNA 封装,使java能够通过调用Tess4J的API来使用tesseract -OCR

我有一篇博客也介绍了tesseract -OCR如何使用tesseract -OCR进行图片识别

java代码实现DOS命令使用tesseract -OCR开源引擎实现图片文字识别

二,tess4j环境准备 官网下载tess4j的jar包 https://sourceforge.net/projects/tess4j  解压之后目录结构如下,tess4j的iar包在dist目录里面

三,Eclipse IDE下的代码实现

新建一个java项目

2.导入tess4j的dist文件夹下的tess4j jar包和lib文件夹下的全部jar包,注意,lib下有一个后缀为.properties的文件别导进去了,把那个删除掉就行,你或许会问会用到那么多jar包吗,因为jar包可能依赖于其他iar包,所以最好全导入进去,我遇到过一个错误  java.lang.NoClassDefFoundError com/sun/jna/pointer  编译没出错,运行就出错,最后把所有包导进去就OK了

3.将tess4j解压目录下的tessdata 文件夹复制到已创建的java项目根目录下(便于项目发布和可移植性,并且等会要进行字库引用),并把中文字库放进这个文件夹(如果要进行中文字符识别)

4.新建Tess4jHelper类

package ocr;

import java.awt.image.BufferedImage; import java.io.File;

import javax.imageio.ImageIO;

import net.sourceforge.tess4j.Tesseract;

public class Tess4jHelper {

/**

* 图片识别(一张)

*

* [@param](https://my.oschina.net/u/2303379) imgPath

* [@param](https://my.oschina.net/u/2303379) ZH_CN

* 是否使用中文训练库,true-是

* [@return](https://my.oschina.net/u/556800) 识别结果

*/

public String recognizing(String imgPath, boolean ZH_CN) {

try {

File imageFile = new File(imgPath); // 创建一个图片文件

if (!imageFile.exists()) { // 如果图片不存在,给出提示并返回

return "图片不存在";

}

BufferedImage textImage = ImageIO.read(imageFile); // 将图片加载到内存

Tesseract instance = new Tesseract(); // 创建Tesseract对象

instance.setDatapath(System.getProperty("user.dir") + "tessdata");// 设置训练库路径

if (ZH_CN) //

instance.setLanguage("chi_sim");// 导入中文识别字库

String recognizeResult = null; // 定义变量,接收识别结果

recognizeResult = instance.doOCR(textImage);// 调用识别方法,得到识别结果

return recognizeResult; // 返回识别结果

} catch (Exception e) {

e.printStackTrace();

return "tess4j识别图片时出错!该图片路径为" + imgPath;

}

}

public static void main(String[] args) {

Tess4jHelper tess4jHelper = new Tess4jHelper();

String imgPath = "D:\\images\\test2.png";

String result = tess4jHelper.recognizing(imgPath, true);//中文识别用true 英文识别用false

System.out.println(result);

}

} 5.中文识别对比

英文识别对比

———————————————— 版权声明:本文为CSDN博主「赴前尘」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_36940806/article/details/86299606

java tess4j训练库_java语言下利用tess4j开源库进行图片中的文本提取相关推荐

  1. 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分

    利用 yaml-cpp 开源库读写 yaml 配置文件-- 读写部分 YAML文件解析 Node 读写yaml文件 config.yaml内容 test_yaml.cpp文件内容 重要内容简单解释 n ...

  2. Android下拉刷新开源库对比(转)

    安卓下拉刷新开源库对比 作者:desmond1121 目前仅比对github上star数>1500的下拉刷新开源库,在比较完成之后可能会加入其它有代表性的库. Repo Repo Owner S ...

  3. iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)

    C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...

  4. Windows下使用DCMTK开源库对DICOM协议的医学图像进行解析与显示

    DICOM(Digital Imaging and Communications in Medicine),是用于医学影像处理.储存.打印.传输的一组通用标准协定.目前,被广泛应用于放射医疗,心血管成 ...

  5. java oracle executeupdate 无效_Java语言的品味(三)

    我们接着上次讨论的Java是一门面向对象的编程语言这个话题继续下去.在前边的两篇文章里,我谈到了Java中有些做的不好的地方.今天就来谈谈做得好的地方.当然,这个好,只是我个人觉得好,还是有不少人是有 ...

  6. java c++的区别_Java语言与C、C++之间的区别?

    小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...

  7. java程序设计基础篇_Java语言程序设计(基础篇) 第一章

    第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...

  8. vs可以调用java接口吗_关于vs2010下编译dll动态库,JNA接口在java中调用的问题

    最近在搞关于把vs2010中的project,使之能够在Java下面运行,有一个调用本地接口的问题,JNI那个涉及到复杂细节太多,就使用了最新的JNA(java native access) 网上也给 ...

  9. c语言编写词库_C语言课程设计--电子生词库软件

    C语言课程设计--电子生词库软件 程序设计基础实训任务书程序设计基础实训任务书 题目电子生词库软件 学生姓名 学号 班级 题目类型软件工程(R) 指导教师 一.设计目的一.设计目的 1.进一步掌握和利 ...

最新文章

  1. 编程之美2.10:寻找数组中的最大值和最小值
  2. 第29节 专业英语1
  3. 开源大数据周刊-第72期
  4. 手机outlook刷新不出邮件_网页端Outlook推Spaces功能:轻松整合邮件、会议和文档...
  5. [css] 请用css写一个扫码的加载动画图
  6. 机器学习知识总结系列- 基本概念(1-0)
  7. Java 8:一文掌握 Lambda 表达式 | CSDN 博文精选
  8. git 合并其他分支代码到自己的分支
  9. hadoop远程调试
  10. Java软件开发技术交流群
  11. java乘法口诀编程题_【视频+图文】Java经典基础练习题(二)输出9*9乘法口诀表...
  12. 【车间调度】基于遗传算法求解车间调度matlab源码
  13. 使用c语言解析gprmc数据
  14. php tdd,用phpUnit入门TDD
  15. 激光对射之智能变频技术
  16. 计算机网络无线局域网设计,《计算机网络》网络课程“无线局域网”单元的设计与开发...
  17. 人工只能对php的影响,阿西莫夫眼中的人工智能
  18. Lesson 2 Thirteen equals one
  19. NLP底层技术之句法分析
  20. 11.10 Daily Scrum

热门文章

  1. LTE学习笔记 —— UE能力
  2. Online程序学习(一)
  3. 【圆的周长与面积】python
  4. 触类旁通Elasticsearch:优化
  5. 如何优雅的实现界面跳转 之 统跳协议
  6. 遇到的Windows各种快捷键和终端命令
  7. 如何去营销自己的服务和产品呢?收集了一点小干货
  8. AutoCAD中计算线加总长度
  9. 用canvas画布绘制等腰三角形
  10. 转载:在微信小程序中 生成二维码