Java 实现OCR扫描/识别图片文字

图片内容一般无法编辑,如果想要读取图片中的文本,我们需要用到OCR工具。本文将介绍如何在Java中实现OCR识别读取图片中的文字。

所需工具:

  • IDEA
  • Spire.OCR for Java - Java OCR组件,支持识别多种语言、字体,可读取JPGPNGGIFBMP TIFF 等常用图片中的文本信

产品包下载链接:下载 | Spire.OCR for Java

或从Maven仓库导入:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.ocr</artifactId>
        <version>1.9.0</version>
    </dependency>
</dependencies>
  • 其余依赖文件。按操作系统下载对应文件后,解压缩至指定的文件路径。

Linux

Windows x64

Java OCR识别图片文本的实现步骤

1. IDEA中新建一个项目并导入Spire.OCR.jar

2. 将刚才下载解压缩后的 “dependencies” 文件夹复制到IDEA项目目录下。

3.确保导入以上所需依赖后,运行以下代码实现扫描读取图片中的文本。

import com.spire.ocr.OcrScanner;
import java.io.*;

public class ReadImage {
    public static void main(String[] args) throws Exception {
        //指定依赖文件的路径
        String dependencies = "dependencies\\";
        //指定要需要扫描的图片的路径
        String imageFile = "图片.png";
        //指定输出文件的路径
        String outputFile = "读取图片.txt";

        //创建OcrScanner对象,并设置其依赖文件路径
        OcrScanner scanner = new OcrScanner();
        scanner.setDependencies(dependencies);

        //扫描指定的图像文件
        scanner.scan(imageFile);

        //获取扫描的文本内容
        String scannedText = scanner.getText().toString();

        //创建输出文件对象
        File output = new File(outputFile);
        //如果输出文件已经存在,则将其删除
        if (output.exists()) {
            output.delete();
        }
        //创建BufferedWriter对象来将扫描的文本内容写入输出文件
        BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile));
        writer.write(scannedText);
        writer.close();
    }
}

示例图片:

OCR图片扫描结果:

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java可以使用Tesseract OCR库来实现OCR图片识别。下面是一个简单的示例: 1. 下载Tesseract OCR库。可以从官网(https://github.com/tesseract-ocr/tesseract)下载最新版本的Tesseract OCR库。 2. 导入Tesseract OCR库。将下载的Tesseract OCR库导入Java项目中。 3. 安装语言数据。Tesseract OCR库需要使用语言数据才能进行识别。可以从官网下载相应语言的数据文件,并在项目中指定语言数据的路径。 4. 编写Java代码。以下是一个简单的Java代码示例: ```java import net.sourceforge.tess4j.*; public class OCRTest { public static void main(String[] args) { ITesseract instance = new Tesseract(); // JNA Interface Mapping instance.setDatapath("C:/tessdata"); //设置语言数据路径 instance.setLanguage("chi_sim"); //设置识别语言为简体中文 try { String result = instance.doOCR(new File("test.png")); //识别图片 System.out.println(result); //输出识别结果 } catch (TesseractException e) { System.err.println(e.getMessage()); } } } ``` 在上面的代码中,首先创建了一个Tesseract实例,并设置语言数据路径和识别语言。然后使用doOCR方法识别指定的图片,并输出识别结果。 5. 运行代码。将以上代码保存为OCRTest.java文件,然后在命令行中执行以下命令编译和运行代码: ``` javac -cp tess4j.jar OCRTest.java java -cp tess4j.jar;. OCRTest ``` 其中,tess4j.jar是Tesseract OCR库的Java包。注意需要将tess4j.jar和OCRTest.class文件放在同一目录下,并在命令行中设置类路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值