网上很多教程没有介绍清楚tessdata的位置,以及怎么配置,并且对中文库的描述也存在问题,这里介绍一个最简单的样例。

1、使用maven,直接引入依赖,确保你的工程JDK是1.8以上

        <dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.3.1</version>
</dependency>

2、实现代码

public class OCRDemo {
public static void main(String args[]) throws Exception {
ITesseract instance = new Tesseract();
instance.setDatapath("tessdata"); //相对目录,这个时候tessdata目录和src目录平级 // instance.setDatapath("E:\\myProgram\\java\\ocrdemo\\tessdata");//支持绝对目录
instance.setLanguage("chi_sim");//选择字库文件(只需要文件名,不需要后缀名) try {
File imageFile = new File("d:\\temp\\4.jpg");
String result = instance.doOCR(imageFile);//开始识别
System.out.println(result);//打印图片内容
} catch (Exception e) {
System.out.println(e.toString());//打印图片内容
}
}
}

3、这里一定要注意tessdata的目录位置

4、还需注意就是你选的语言库是不是真的库,网上给的地址,比如这个:https://github.com/tesseract-ocr/tessdata

你从上面下载的不是真正的训练字库,你需要真正找到字库才行。

5、真正的中文字库是比较大的,用notepad++打开文件看看确认是否是真的字库,不然程序会报错误,无法打开chi_sim.traineddata文件,

这个地址可以下载到文件:https://raw.githubusercontent.com/tesseract-ocr/tessdata/master/chi_sim.traineddata

6、识别的效果一般,复杂的表格识别需要自定义识别区域

识别的图片:

识别后的文字:

. 防 火 塔 系 统

防 火 埋 作 为 不 同 网 络 或 网 络 安 全 城 之 间 信 息 的 出 入 口 能 根 据 企 业 的 安 全 策 畦 接 制
出 人 网 络 的 信 息 流 口 本 身 具 有 较 强 的 抗 攻 击 能 力 「 它 是 提 供 信 息 安 全 服 务 实 现 网
络 和 信 息 宗 全 的 基 蛎 设 施 . 在 逐 辐 上 , 防 火 境 是 一 个 分 离 器 限 制 器 和 分 析 器 , 可
以 有 效 勘 接 内 部 网 和 Intemet 之 间 的 任 何 活 动 「 保 证 内 部 网 络 的 安 全 . 防 火 墙 通 常
放 在 外 部 Intemet 网 和 内 部 网 络 之 间 , 以 保 证 内 部 网 络 的 安 全 . 。 防 火 埕 对 流 经 它 的 网 络 通 信 进 行 扫 揽 , 泉 样 能 够 过 滁 掉 一 些 攻 击 , 以 免 其 在 目 标 计
算 机 上 被 执 行 “ 仿 火 墙 运 可 以 伟 闭 不 使 用 的 堵 口 而 丝 它 还 能 菲 止 特 定 堡 口 的 流 出
通 信 封 锁 特 洛 伊 木 马 曝 后 「 它 可 以 蔡 止 来 自 特 殊 站 点 的 访 问 仕 而 防 止 来 自 不 明
人 促 者 的 所 有 通 信 。 。
 

java 使用tess4j实现OCR的最简单样例的更多相关文章

  1. java 不可变对象 final Collections guava 简单样例

    本地环境 jdk1.8 连接 Google Guava官方教程(中文版) journaldev 说明 java的final关键字大家都了解,但是final修饰的如果是引用类型,那么不可修改的其实只是重 ...

  2. velocity简单样例

    velocity简单样例整体实现须要三个步骤,详细例如以下: 1.创建一个Javaproject 2.导入须要的jar包 3.创建须要的文件 ============================= ...

  3. extern外部方法使用C#简单样例

    外部方法使用C#简单样例 1.添加引用using System.Runtime.InteropServices; 2.声明和实现的连接[DllImport("kernel32", ...

  4. java 线程、线程池基本应用演示样例代码回想

    java 线程.线程池基本应用演示样例代码回想 package org.rui.thread; /** * 定义任务 * * @author lenovo * */ public class Lift ...

  5. spring事务详解(二)简单样例

    系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...

  6. java I/O进程控制,重定向 演示样例代码

    java I/O进程控制,重定向 演示样例代码 package org.rui.io.util; import java.io.*; /** * 标准I/O重定向 */ public class Re ...

  7. Java 序列化Serializable具体解释(附具体样例)

    Java 序列化Serializable具体解释(附具体样例) 1.什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描写叙述的过程:反序列化deserializa ...

  8. 自己定义隐式转换和显式转换c#简单样例

    自己定义隐式转换和显式转换c#简单样例 (出自朱朱家园http://blog.csdn.net/zhgl7688) 样例:对用户user中,usernamefirst name和last name进行 ...

  9. java 8 date time 简单样例

    参考 Java 8 Time Api 使用指南-珍藏限量版 Java 8 中处理日期和时间示例 部分样例 import java.time.temporal.TemporalAdjusters; im ...

随机推荐

  1. 关于setImageURI out of memory的一些解决办法

    http://stackoverflow.com/questions/477572/strange-out-of-memory-issue-while-loading-an-image-to-a-bi ...

  2. day24_7.30 反射与元类

    一.反射 在python中,反射通常是指一个对象应该具备,可以检测修复,增加自身属性的能力. 而反射可以通过字符串对其进行操作. 其中涉及了4个函数,是四个普通 的函数: hasattr(oop,st ...

  3. day14_7.16 模块

    一.模块 1.什么是模块? 模块就是一系列功能的结合体. 模块的三种来源: 1.内置的,也就是python解释器自带的,可以直接导入 2.第三方的,需要下载的 3.自定义的,自己写的模块 模块的四种表 ...

  4. mysql版本引起的驱动问题

    mysql版本引起的驱动问题 com.mysql.jdbc.Driver 是 mysql-connector-java 5中的, com.mysql.cj.jdbc.Driver 是 mysql-co ...

  5. 【使用篇二】SpringBoot整合Servlet(1)

    两种方式: 通过注解扫描完成 Servlet组件的注册 通过方法完成 Servlet组件的注册 一.通过注解扫描完成 Servlet 组件的注册 1. 编写Servlet类 /** * SpringB ...

  6. Linux下的SVN服务器搭建(八)

    1. 通过yum命令安装svnserve yum -y install subversion #查看svn安装位置 rpm -ql subversion 2. 创建版本库目录(此仅为目录,为后面创建版 ...

  7. shell的变量以及常见符号

    shell的变量以及常见符号 常见变量 不同于其它语言需要先声明变量,shell的变量直接使用 eg:      a=15 调用变量的话 $a 或者 ${a} $? #判断上一条命令执行的是否成功 0 ...

  8. SSH登录服务器慢

      最近频繁遇到ssh登录到服务器验证慢的这个问题,今天抽时间总结下原因以及解决办法. UseDNS   登录到服务器端查看sshd_config配置文件,当UseDNS项配置为yes时(默认情况下可 ...

  9. Excel-基本操作

    一.EXCEL的数据类型 1.字符型 2.数值型 3.日期型数据和时间型数据 二.快捷键 ctrl+上下左右健 快速选择某区域  上下左右单元格 ctrl+shift+上下左右 快速选择某个取悦 三. ...

  10. python的小数据池

    一.什么是小数据池? 小数据池是一种缓存机制,也被称为驻留机制.各种编程语言中都有类似的东西(常量池.小数据池都是指得同一个内容). python自动将-5~256的整数.有一定规则的字符串.都放在一 ...