首页 > 编程语言 >Java 实现OCR扫描/识别图片文字

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

时间:2024-04-01 14:47:55浏览次数:36  
标签:Java String 扫描 iceblue 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图片扫描结果:

 

标签:Java,String,扫描,iceblue,OCR,图片
From: https://www.cnblogs.com/Yesi/p/18108357

相关文章

  • Java 8 新特性:Lambda 表达式、方法引用和 Stream 流
    函数式接口具有单个抽象方法的接口被称为“函数式接口”,函数式接口的实例被称为“函数对象”,表示函数和要采取的动作。六大基础函数式接口:函数式接口名称用途方法Consumer<T>消费型接口操作类型T的对象voidaccept(Tt)Supplier<T>供给型接口返回类型为T......
  • Java:异常处理
    在Java中,异常是程序运行时发生的不正常情况,它们打断了正常的指令流。异常处理是Java语言的一个重要特性,它可以帮助程序员捕获并处理运行时可能出现的错误,从而提高程序的健壮性。以下是Java中异常相关的详细知识:异常类的层次结构Java的异常类都继承自java.lang.Throwable类......
  • 身份证实名认证接口会返回什么?javascript身份核验接口示例
    身份证实名认证接口是通过核验身份证号、姓名、证件头像等一系列的要素信息进行用户身份验证,那么,身份证实名认证接口一般在核验完成后会返回什么参数信息呢?下面翔云API小编为大家答疑解惑!一般情况下,身份核验只会返回一致或者不一致的结果,不一致的情况下会返回那些参数不一致,以翔......
  • 【附源码】JAVA计算机毕业设计智慧外贸平台(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在全球经济一体化的时代背景下,智慧外贸平台的建设已成为提升我国外贸竞争力、优化国际贸易环境的关键一环。随着信息技术的迅猛发展,传统的外贸模式已......
  • 【附源码】JAVA计算机毕业设计智慧物流管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息化时代的快速发展,物流行业作为现代经济体系的重要支柱,正面临着前所未有的机遇与挑战。传统的物流管理方式已难以适应现代社会的需求,智能化、......
  • 【附源码】JAVA计算机毕业设计智慧小饭桌(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展和科技的进步,人们对教育的关注和要求也在不断提高。在当今快节奏的生活中,许多家庭面临着孩子午餐难以解决的问题,尤其是对于那些工......
  • 【附源码】JAVA计算机毕业设计智慧型居民小区物业管理(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和居民生活水平的提高,智慧型居民小区逐渐成为现代城市发展的一个重要方向。在这样的背景下,传统物业管理模式已难以满足居民日益......
  • Nexpose v6.6.244 for Linux & Windows - 漏洞扫描
    Nexposev6.6.244forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,ReleaseMar27,2024请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序搜集通过实时覆盖整个网络,随......
  • Android Binder——Java层介绍(三)
    一、简介       对于Android系统,一般是从java层到native层,再到kernel驱动层,形成一个完整的软件架构。Android系统中的BinderIPC通信机制的整体架构也是如此,Java和C++层都定义有同样功能的供应用程序使用的Binder接口。然而Java层中Framework层的......
  • Java从萌新小白到顶级大牛(4更新中)
    自定义异常Java标准库定义的常用异常包括:Exception│├─RuntimeException│ ││ ├─NullPointerException│ ││ ├─IndexOutOfBoundsException│ ││ ├─SecurityException│ ││ └─IllegalArgumentException│    ││ ......