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

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

所需工具:

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

产品包下载链接:https://www.e-iceblue.cn/Downloads/Spire-OCR-JAVA.html

或从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 = "F:\\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图片扫描结果:

相关推荐
不知疲倦的仄仄8 分钟前
第一天:从 ByteBuffer 内存模型到网络粘包处理实战
java·网络·nio
Tinachen889 分钟前
YonBIP旗舰版本地开发环境搭建教程
java·开发语言·oracle·eclipse·前端框架
星火开发设计17 分钟前
堆排序原理与C++实现详解
java·数据结构·c++·学习·算法·排序算法
七七powerful25 分钟前
docker28.1.1和docker-compose v.2.35.1安装
java·docker·eureka
小白学大数据34 分钟前
百科词条结构化抓取:Java 正则表达式与 XPath 解析对比
java·开发语言·爬虫·正则表达式
2501_9418072640 分钟前
在迪拜智能机场场景中构建行李实时调度与高并发航班数据分析平台的工程设计实践经验分享
java·前端·数据库
一 乐44 分钟前
餐厅点餐|基于springboot + vue餐厅点餐系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
ss2731 小时前
volatile的可见性、安全发布的秘密与ThreadLocal原理
java·开发语言
小猪配偶儿_oaken1 小时前
SpringBoot实现单号生成功能(Java&若依)
java·spring boot·okhttp
宋情写1 小时前
JavaAI04-RAG
java·人工智能