java tess4j训练库_java语言下利用tess4j开源库进行图片中的文本提取
一,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开源库进行图片中的文本提取相关推荐
- 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分
利用 yaml-cpp 开源库读写 yaml 配置文件-- 读写部分 YAML文件解析 Node 读写yaml文件 config.yaml内容 test_yaml.cpp文件内容 重要内容简单解释 n ...
- Android下拉刷新开源库对比(转)
安卓下拉刷新开源库对比 作者:desmond1121 目前仅比对github上star数>1500的下拉刷新开源库,在比较完成之后可能会加入其它有代表性的库. Repo Repo Owner S ...
- iOS架构-C/C++lame库在Mac下编译通用静态库.a库(13)
C/C++ 有很多成熟的库,还有很多特殊功能的库,有时候iOS 平台开发一些比较前沿或者冷门的功能时,iOS并没有提供解决方案,这时候就可以研究C/C++的一些库,为我们使用.但是在Xcode编译C/ ...
- Windows下使用DCMTK开源库对DICOM协议的医学图像进行解析与显示
DICOM(Digital Imaging and Communications in Medicine),是用于医学影像处理.储存.打印.传输的一组通用标准协定.目前,被广泛应用于放射医疗,心血管成 ...
- java oracle executeupdate 无效_Java语言的品味(三)
我们接着上次讨论的Java是一门面向对象的编程语言这个话题继续下去.在前边的两篇文章里,我谈到了Java中有些做的不好的地方.今天就来谈谈做得好的地方.当然,这个好,只是我个人觉得好,还是有不少人是有 ...
- java c++的区别_Java语言与C、C++之间的区别?
小伙伴你知道吗?Java是由C++开发而来的,并且在当时一直被搁置.随着Java语言的崛起那么Java和C/C++有什么不同和相同之处呢? 通过上述我们知道那Java前身是C++,并且保留了C++的大 ...
- java程序设计基础篇_Java语言程序设计(基础篇) 第一章
第一章 计算机.程序和Java概述 1.1 引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2 什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(har ...
- vs可以调用java接口吗_关于vs2010下编译dll动态库,JNA接口在java中调用的问题
最近在搞关于把vs2010中的project,使之能够在Java下面运行,有一个调用本地接口的问题,JNI那个涉及到复杂细节太多,就使用了最新的JNA(java native access) 网上也给 ...
- c语言编写词库_C语言课程设计--电子生词库软件
C语言课程设计--电子生词库软件 程序设计基础实训任务书程序设计基础实训任务书 题目电子生词库软件 学生姓名 学号 班级 题目类型软件工程(R) 指导教师 一.设计目的一.设计目的 1.进一步掌握和利 ...
最新文章
- 编程之美2.10:寻找数组中的最大值和最小值
- 第29节 专业英语1
- 开源大数据周刊-第72期
- 手机outlook刷新不出邮件_网页端Outlook推Spaces功能:轻松整合邮件、会议和文档...
- [css] 请用css写一个扫码的加载动画图
- 机器学习知识总结系列- 基本概念(1-0)
- Java 8:一文掌握 Lambda 表达式 | CSDN 博文精选
- git 合并其他分支代码到自己的分支
- hadoop远程调试
- Java软件开发技术交流群
- java乘法口诀编程题_【视频+图文】Java经典基础练习题(二)输出9*9乘法口诀表...
- 【车间调度】基于遗传算法求解车间调度matlab源码
- 使用c语言解析gprmc数据
- php tdd,用phpUnit入门TDD
- 激光对射之智能变频技术
- 计算机网络无线局域网设计,《计算机网络》网络课程“无线局域网”单元的设计与开发...
- 人工只能对php的影响,阿西莫夫眼中的人工智能
- Lesson 2 Thirteen equals one
- NLP底层技术之句法分析
- 11.10 Daily Scrum