Java调用tess4j完成 OCR 文字识别

news/2024/9/25 10:24:38/

1,新建 maven 工程

2,引入依赖
<dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>5.11.0</version>
    </dependency>


3,安装 tesseract-ocr

下载地址https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-5.3.3.20231005.exe

其他版本可以查看 https://digi.bib.uni-mannheim.de/tesseract/

安装过程中一直点下一步,建议取消语言包选项,后面手动下载

可能需要安装visual c++ 2015-2019 redistributable或最新版visual c++ 2015-2022 redistributable

4,下载语言包
https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/

下载enm.traineddata和chi_sim.traineddata,复制粘贴到C:\Program Files\Tesseract-OCR\tessdata

5,调用 Tesseract API 完成文本识别

import java.io.File;

import net.sourceforge.tess4j.Tesseract;

public class Tess4jDemo {

    public static void main(String[] args) {
        // 创建实例
        Tesseract instance = new Tesseract();
        
        // 设置语言包路径
        instance.setDatapath("C:\\Program Files\\Tesseract-OCR\\tessdata");
        
        // 设置语言
        instance.setLanguage("chi_sim");
        
        // 设置文本文件
        File file = new File("C:\\Users\\user1\\Desktop\\截图.PNG");
        
        try {
            // 文本识别
            String result = instance.doOCR(file);
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

示例代码见


 https://download.csdn.net/download/daqinzl/89221358


http://www.ppmy.cn/news/1438193.html

相关文章

牛客NC238 加起来和为目标值的组合【中等 DFS C++、Java、Go、PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/172e6420abf84c11840ed6b36a48f8cd 思路 本题是组合问题&#xff0c;相同元素不同排列仍然看作一个结果。 穷经所有的可能子集&#xff0c;若和等于target&#xff0c;加入最终结果集合。 给nums排序是为了方便…

AI-数学-高中-44导数的运算法则

原作者视频&#xff1a;【导数】【一数辞典】3导数的运算法则&#xff08;略难&#xff09;_哔哩哔哩_bilibili 三种求导表达方式一样的&#xff0c;中间的比较常用&#xff1a; 链式法则&#xff1a;从外向内&#xff1a;

JavaEE——Spring Boot + jwt

目录 什么是Spring Boot jwt&#xff1f; 如何实现Spring Boot jwt&#xff1a; 1. 添加依赖 2、创建JWT工具类 3. 定义认证逻辑 4. 添加过滤器 5、 http请求测试 什么是Spring Boot jwt&#xff1f; Spring Boot和JWT&#xff08;JSON Web Token&#xff09;是一对常…

【Linux】详解信号产生的方式

一、kill命令 在命令行中通过kill -数字 pid指令可以给指定进程发送指定信号。这里说明一下几个常见的信号&#xff1a; SIGINT&#xff08;2号信号&#xff09;&#xff1a;中断信号&#xff0c;通常由用户按下CtrlC产生&#xff0c;用于通知进程终止。SIGQUIT&#xff08;3号…

【MySQL】DML

1、DML简介 DML&#xff08;Data Manipulation Language、数据操作语言&#xff09;&#xff0c;用于添加、删除、更新和查询数据库记录&#xff0c;并检查数据完整性。 2. 添加数据 2.1 使用关键字 使用 INSERT 语句向表中插入数据。使用 VALUES语句添加 2.2 使用情况 2.2…

设计模式学习笔记 - 开源实战四(中):剖析Spring框架中用来支持扩展的设计模式

概述 上篇文章&#xff0c;学习了 Spring 框架背后蕴含的设计思想&#xff0c;比如约定优于配置、低侵入松耦合、模块化轻量级等等。这些设计思想可以借鉴到其他框架开发中&#xff0c;在大的设计层面提高框架的代码质量。 除了上篇文章降到的设计思想&#xff0c;实际上&…

H5点击复制功能 兼容安卓、IOS

效果图 HTML代码 <div>链接&#xff1a;<span style"color: #FF8A21" click"CopyUrl" id"copyId"> https://blog.csdn.net/qq_51463650?spm1000.2115.3001.5343</span> </div>复制方法 const CopyUrl () > {let …

冯诺依曼体系结构再谈操作系统

前言 前面对基本的指令、权限以及环境开发的基本工具进行了介绍&#xff0c;本期开始我们将进入系统的的学习&#xff0c;例如我们常听的进程等&#xff0c;在进入进程的学习前我们先要铺垫一下&#xff0c;所以本期我们先来介绍一下冯诺依曼体系结构和再谈操作系统&#xff0…