Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot + Tess4J 实现本地与远程图片处理

SpringBoot + Tess4J 实现本地与远程图片处理

原创
作者头像
小马哥学JAVA
发布于 2024-04-30 11:30:08
发布于 2024-04-30 11:30:08
50900
代码可运行
举报
运行总次数:0
代码可运行

引言

Spring Boot 是一个流行的 Java 框架,可以方便地搭建各种类型的应用。Tess4J 是一个基于 Tesseract OCR 的 Java 接口库,用于识别图像中的文本。本文将介绍如何结合这两个工具,创建一个应用程序,能够处理本地和远程图像,提取其中的文本。

准备工作

1. 环境设置
  • JDK:确保已安装 Java 8 或以上版本。
  • Maven:用于管理项目依赖。
  • Tesseract OCR:需要在系统中安装 Tesseract OCR,以便 Tess4J 能够调用。
2. 项目配置

创建一个基于 Spring Boot 的 Maven 项目,并在 pom.xml 中添加以下依赖:

xml复制代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

实现图片文本提取

1. 图片文本提取逻辑

首先,我们需要一个方法来处理图像并提取文本。以下代码演示了如何使用 Tess4J 进行本地和远程图像的文本提取。

java复制代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;

public class ImageTextExtractor {

    private Tesseract tesseract;

    public ImageTextExtractor() {
        tesseract = new Tesseract();
        // 设置 Tesseract OCR 数据目录
        tesseract.setDatapath("C:/Program Files/Tesseract-OCR/tessdata");
        tesseract.setLanguage("eng"); // 设置识别语言
    }

    public String extractTextFromLocalImage(String imagePath) throws TesseractException {
        return tesseract.doOCR(new File(imagePath));
    }

    public String extractTextFromRemoteImage(String imageUrl) throws IOException, TesseractException {
        // 下载图像到本地临时文件夹
        String tempFilePath = System.getProperty("java.io.tmpdir") + "/temp_image.jpg";
        Files.copy(new URL(imageUrl).openStream(), Paths.get(tempFilePath));
        
        return extractTextFromLocalImage(tempFilePath);
    }
}
2. 创建 Web 控制器

接下来,我们需要一个 Web 控制器来接收 HTTP 请求,并调用上述的方法:

java复制代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class OCRController {

    private final ImageTextExtractor extractor;

    public OCRController() {
        extractor = new ImageTextExtractor();
    }

    @GetMapping("/extract-text")
    public String extractText(@RequestParam String source, @RequestParam(required = false) boolean isRemote) {
        try {
            if (isRemote) {
                return extractor.extractTextFromRemoteImage(source);
            } else {
                return extractor.extractTextFromLocalImage(source);
            }
        } catch (Exception e) {
            return "Error: " + e.getMessage();
        }
    }
}

测试应用程序

1. 本地测试

启动应用程序后,使用浏览器或 Postman 等工具访问以下 URL 进行测试:

  • 本地图像http://localhost:8080/extract-text?source=path_to_image_file
  • 远程图像http://localhost:8080/extract-text?source=image_url&isRemote=true
2. 分析结果

在浏览器或客户端中查看结果,并确保应用程序能够正确提取图像中的文本。

结论

本文介绍了如何使用 Spring Boot 和 Tess4J 构建一个应用程序,以处理本地和远程图像中的文本提取任务。通过合理配置项目依赖和结构,我们可以轻松构建一个实用的 OCR 应用,从而扩展 Java 项目的功能,为用户提供更多实用的服务。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
众包黑科技辅助器下载,美团抢单辅助器app,骑手众包抢单辅助神器app
下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:8888 【仅供学习参考】
用户11701393
2025/06/23
930
Java也能做OCR!SpringBoot 整合 Tess4J 实现图片文字识别
光学字符识别(OCR)技术能够将图片中的文字转换为可编辑的文本,这在文档管理、票据处理等领域有广泛的应用。Tesseract 是一个开源的OCR引擎,Tess4J 则是 Tesseract 的 Java 封装库。本文将介绍如何使用 Spring Boot 整合 Tess4J,实现图片文字识别功能。
IT_陈寒
2025/06/01
4280
Java也能做OCR!SpringBoot 整合 Tess4J 实现图片文字识别
基于Tess4j的图片识别
Tess4J是对Tesseract OCR API的Java JNA 封装。tesseract是跨平台的OCR(Optical Character Recognition,光学字符识别)引擎,让开发者非常容易的集成OCR能力到他们自己的应用。通过强大的API从图片中识别和提取文本内容。Tess4J支持主流的图片格式,如TIFF,JPEG,GIF,PNG,BMP,and PDF。 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
全栈程序员站长
2022/08/31
1.8K0
JAVA——Tess4J简单的图像识别DEMO
2、在任意地方创建一个文件夹tessdata,将下载的chi_sim.traineddata 和 eng.traineddata语言包存放在该目录下,也可以直接存放到自己项目的resources/tessdata目录下。
全栈程序员站长
2022/09/05
2.2K0
JAVA——Tess4J简单的图像识别DEMO
图像文字识别(四):java调用tess4j识别图像文字
Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。前面记录过在java中调用tesseract-orc,该方法的原理是通过在java中调用cmd命令行,来执行tesseract,但是该方式需要下载软件,在电脑上安装环境,移植性不高。
全栈程序员站长
2022/06/29
5.7K0
图像文字识别(四):java调用tess4j识别图像文字
Java使用Tesseract-OCR实战
tesseract-ocr-w64-setup-v5.3.0.20221214.exe 选择安装目录,下一步,下一步默认安装
九转成圣
2024/04/10
6760
🌟 Java图像识别之旅:从入门到实践的全面指南
这里推荐一篇实用的文章:《Java中POM模块互相引用问题的解决方案》,作者:【喵手】。
bug菌
2024/11/20
6860
🌟 Java图像识别之旅:从入门到实践的全面指南
JAVA使用Tess4J进行ocr识别,并切换中文
Mac上安装 tesseract_MR.骑士道-CSDN博客_mac tesseract
全栈程序员站长
2022/09/07
3.9K0
JAVA使用Tess4J进行ocr识别,并切换中文
Java 使用 Tess4J 实现图像识别
最近需要用Java做一个图像识别的东西,查了一些资料,在此写一个基于Tess4J的教程,方便其他人参考和使用。
全栈程序员站长
2022/07/01
2.3K0
Java 使用 Tess4J 实现图像识别
从图像中找到文字 -- 开源 OCR 工具 tesseract 使用简介
OCR 是 Optical Character Recognition (光学字符识别)的缩写,指的是通过检测图像,从而识别出文字的技术。
用户3147702
2022/06/27
2.3K0
从图像中找到文字 -- 开源 OCR 工具 tesseract 使用简介
tess4J 安装使用
参考 https://blog.csdn.net/gs80140/article/details/103938651
全栈程序员站长
2022/08/10
1.7K0
tess4J 安装使用
‍Java OCR技术全面解析:六大解决方案比较
在本篇博文中,我们深入探讨了六种主流的Java OCR(光学字符识别)技术解决方案,旨在为Java开发者提供全面的技术对比和实用指南。从开源神器Tesseract到云服务巨头Google Vision API,再到专业的OCR库如ABBYY,每种解决方案都将通过依赖引入、代码实例、GitHub上的数据集链接、应用场景对比以及优缺点分析进行详细介绍。无论是对于OCR新手还是经验丰富的开发大佬,本文都力求提供一份准确、易读、内容丰富的技术分享,确保每位读者都能找到满足其项目需求的最佳OCR解决方案。
猫头虎
2024/04/07
4.4K0
‍Java OCR技术全面解析:六大解决方案比较
验证码识别(Tess4J初体验)
当时就懵逼了0.0查了好多资料,大体知道了基本的步骤:1.预处理 2.灰度化 3.二值化 4.去噪 5.分割 6.识别
全栈程序员站长
2022/08/12
9290
验证码识别(Tess4J初体验)
图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能
说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’的朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖的‘大脑’- 水哥,(PS:内幕不知),那么今天,我们来看下关于图像识别,是如何做到的,Java又是如何识别图像的?
码神联盟
2018/07/30
12.5K0
图像识别  | 使用 Java 实现AI人工智能技术-图像识别功能
java tess4j mave_图片处理,Tess4j读取验证码、识别文字
https://tesseract-ocr.github.io/tessdoc/Home.html
全栈程序员站长
2022/09/05
1.2K0
tesseract-ocr 实现图片识别功能
http://blog.sina.com.cn/s/blog_56d988430102w37c.html
bear_fish
2018/09/19
6.1K0
tesseract-ocr 实现图片识别功能
Spring和Ocr整合详解
Tess4J是对Tesseract OCR API.的Java JNA 封装。使java能够通过调用Tess4J的API来使用Tesseract OCR。支持的格式:TIFF,JPEG,GIF,PNG,BMP,JPEG,and PDF.
品茗IT
2019/09/12
1.5K0
tess4j正确的使用 OCR
在官网上下载下来的 tess4j 的zip,初见时看的云里雾里的,原以为是个jar,直接引用就好了,结果竟是个zip。网上查一下用法,各种说法,各种菜,全是误导,自己不懂就敢瞎说…
全栈程序员站长
2022/09/01
1.1K0
tess4j验证码识别
参考:https://www.cnblogs.com/cmyxn/p/6993422.html
全栈程序员站长
2022/07/01
1.1K0
java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别
Tess4J是对Tesseract OCR API.的Java JNA 封装。使java能够通过调用Tess4J的API来使用Tesseract OCR。支持的格式:TIFF,JPEG,GIF,PNG,BMP,JPEG,and PDF
全栈程序员站长
2022/09/05
3.3K0
推荐阅读
相关推荐
众包黑科技辅助器下载,美团抢单辅助器app,骑手众包抢单辅助神器app
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验