Java 集成使用OCR 实现文字识别

Java实现图片转文字!(OCR实现) 在实现OCR之前,先要分清楚Tesseract和Tess4j的区别。Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用。 阅读详情

Java集成Tesserac

目前项目中需要使用到图文识别,查了很多博客,发现了很多很多tesserac的,今天实现出来,有以下几点需要注意
首先 确定自己使用的 tesserac 是正确的
查看自己 tesserac 的环境

tesseract -v

查看自己的tesseract 是否安装成功,如果没有下面链接有还有 chi_sim 语言包
链接:https://pan.baidu.com/s/1PAGr3qsBL8AtqlyA0LecUg
提取码:9mp6
chi_sim 是tesseract 的语言包 在tessdata 中设置就可以

以上步骤完成之后 差不多就完成了 下面就是一个测试Demo

    package com.example.ocr.controller.OCR;


    import java.io.*;
    import java.util.ArrayList;
    import java.util.List;
    
    public class OCRHelper {

        private final String LANG_OPTION = "-l";
        private final String EOL = System.getProperty("line.separator");

        /**
         *  Tesseract-OCR的安装路径
         */
        private String tessPath = "D://ocr//Tesseract-OCR";

        /**
         * @param imageFile   传入的图像文件
         * @return 识别后的字符串
         */
        public String recognizeText(File imageFile) throws Exception {
            /**
             * 设置输出文件的保存的文件目录
             */
            File outputFile = new File(imageFile.getParentFile(), "output");

            StringBuffer strB = new StringBuffer();
            List<String> cmd = new ArrayList<String>();

            cmd.add(tessPath + "\\tesseract");

            cmd.add("");
            cmd.add(outputFile.getName());
            cmd.add(LANG_OPTION);
            cmd.add("chi_sim");
            //cmd.add("eng");

            ProcessBuilder pb = new ProcessBuilder();
            pb.directory(imageFile.getParentFile());
            cmd.set(1, imageFile.getName());
            pb.command(cmd);
            pb.redirectErrorStream(true);
            Process process = pb.start();
            int w = process.waitFor();
            if (w == 0)// 0代表正常退出
            {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        new FileInputStream(outputFile.getAbsolutePath() + ".txt"),
                        "UTF-8"));
                String str;

                while ((str = in.readLine()) != null) {
                    strB.append(str).append(EOL);
                }
                in.close();
            } else {
                String msg;
                switch (w) {
                    case 1:
                        msg = "错误  Errors accessing files. There may be spaces in your image's filename.";
                        break;
                    case 29:
                        msg = "Cannot recognize the image or its selected region.";
                        break;
                    case 31:
                        msg = "Unsupported image format.";
                        break;
                    default:
                        msg = "Errors occurred.";
                }
                throw new RuntimeException(msg);
            }
            new File(outputFile.getAbsolutePath() + ".txt").delete();
            return strB.toString().replaceAll("\\s*", "");
        }
    }

test类

package com.example.ocr.controller.OCR;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;


/**
 * 测试主类
 */

public class Test {
    public static void main(String[] args) {
        System.out.println("输入你识别的图片");
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        try {
            //图片文件:此图片是需要被识别的图片
            File imageFile = new File(next);
            String recognizeText = new OCRHelper().recognizeText(imageFile);
            System.out.print(recognizeText + "\t");

        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

代码已经简化过,只要按照配置一部一部来,cp直接能用

java使用tesseract-ocr进行文字识别 查找到使用java也能连接的OCR开源项目进行识别的学习。使用tesseract-ocr 阅读详情

相关推荐

Java实现OCR文字识别:Tess4J集成与优化实践

OCR(光学字符识别)技术通过算法将图片中的文字转换为可编辑文本,在文档数字化、票据处理等领域有广泛应用。基于Tesseract引擎的Java封装库Tess4J,开发者可以快速实现高精度文字识别功能。该技术通过图像预处理、语言包配置等关键步骤,在发票识别、证件信息提取等场景中能达到85%以上的准确率。结合Spring Boot框架和线程池优化,可构建高性能的企业级OCR服务。本文以Java生态为例,详细解析Tess4J的集成方案、性能调优技巧及常见问题解决方案。

weixin_30279315的博客 401

【项目管理】Java OCR实现图片文字识别

Java OCR实现图片文字识别

李晋江的博客 2万+

Java集成Tesseract-OCR实现多语言文字识别实战

本文详细介绍了如何在Java项目中集成Tesseract-OCR引擎,实现高效、稳定的多语言文字识别。内容涵盖从环境搭建、Tess4J库引入、核心代码编写,到参数调优、图片预处理及性能优化等实战环节,帮助开发者构建本地化、可控性强的OCR解决方案,特别适合对数据安全与稳定性有要求的企业级应用。

weixin_29196613的博客 919

Java也能做OCR!SpringBoot 整合 Tess4J 实现图片文字识别

先简单给没听过的xdm解释下,这里要分清楚Tesseract和Tess4j的区别。Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用。搞清楚这俩东西,就足够了。

mxt51220的博客 7797

基于Tesseract-OCR实现的JAVA WEB版OCR(图片转文字)

首先在Tesseract-OCR官网下载Tesseract-OCR 3.02,以及中文数据包chi_sim.traineddata(简体) 接下来就是新建一个JAVA EE项目,把Tesseract-OCR放在项目WebRoot下。 下面是主要代码: 接受客户端上传过来的图片,使用Tesseract-OCR识别后返回至前台。 package servlet; import java.io

liwei2633的专栏 5685

SpringBoot/Java中OCR实现,集成Tess4J实现图片文字识别

Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。

BADAO_LIUMANG_QIZHI的博客 3181

本地化OCR集成方案:Java项目集成Umi-OCR实现高效文字识别

在企业级应用开发中,文字识别技术已成为数据处理的关键环节。通过对多个业务场景的调研,我们发现以下三类需求尤为突出: **数据录入自动化**:某物流企业每天需要处理超过5000份纸质运单,人工录入效率低下且错误率高达3%。通过OCR技术实现运单号、收件人信息的自动提取,可将处理时间从8小时缩短至1小时,同时将错误率降至0.1%以下。 **文档电子化归档**:法律行业的合同管理系统需要将大量纸质合

gitblog_00551的博客 359

Java项目集成OCR技术:代码实现指南

光学字符识别(OCR)技术允许软件通过扫描文档和图像来识别文字,从而实现了从静态图像到电子文本的转换。对于Java开发人员来说,集成第三方OCR引擎可以极大地扩展应用程序的功能,使之能够进行文档分析和处理,如自动填写表格、提取文本信息等。本章详细介绍了在不同操作系统环境下安装和配置Tesseract OCR的方法。对于Windows用户,需要手动设置环境变量;而Linux用户则可以利用包管理器自动安装和配置。

weixin_34581040的博客 1566

Java OCR实战指南:5分钟集成RapidOCR实现高效文字识别

在数字化转型浪潮中,Java项目对图像文字识别功能的需求日益增长。RapidOCR-Java作为一款纯Java实现的OCR工具库,为开发者提供了开箱即用的文字识别解决方案,无需额外部署服务或学习复杂配置。 ## 🚀 项目核心价值解析 RapidOCR-Java基于百度PaddleOCR开发,完全移除了Kotlin依赖,让Java开发者能够专注于业务逻辑而非技术细节。该项目支持ONNX和NCN

gitblog_00932的博客 601

Java实现的OCR印刷文字识别接口教程

在当今数字化时代,光学字符识别(Optical Character Recognition,简称OCR)技术已经成为自动化信息输入的核心工具之一。OCR技术能够将印刷或书写在纸张上的文字转换为机器编码的文本数据,极大提高了数据录入的效率与准确性。本章将从OCR技术的起源讲起,简要介绍其工作原理及应用场景,为读者提供一个全面的基础知识框架。OCR系统通常包含以下几个步骤:图像采集、预处理、字符分割、特征提取、字符识别及后处理。每个步骤都对最终的识别准确率起着至关重要的作用。

weixin_42097508的博客 900

Java OCR 图像智能字符识别技术,可识别中文

Java OCR 图像智能字符识别技术,可识别中文。具体详见:http://blog.youkuaiyun.com/white__cat/article/details/38461449

OCR图像识别技术的JAVA实现(一)

转自:https://blog.youkuaiyun.com/weistin/article/details/78839804 OCR图像识别技术的JAVA实现 最近有个需求需要用图像识别,学习记录一下。 目前网络上的开源的图像识别技术有很多,例如 OCRE(OCR Easy)、Clara OCR、OCRAD、TESSERACT-OCR 等等,今天本blog将记录下tesseract-ocr的JAVA...

y19910825的博客 3万+

利用Office2003自带的OCR组件进行文字识别(PB源码)

利用Office2003自带的OCR组件进行文字识别(PB9.0代码) 1.需要安装office2003 OCR组件 2.适用于简单的文字识别,识别率非常高。 3、pb 11.5也可以使用

解锁OCR技术:Java集成文字识别的终极指南

还在为手动输入图片中的文字而烦恼吗?想要快速上手OCR技术,让Java应用自动识别图片内容?别担心,今天我们就来探索TESS4J这个强大的Java OCR集成方案,让你轻松实现图片转文字的神奇功能!🚀 ## 第一部分:新手入门指南 ### 🎯 学习目标:30分钟搭建OCR开发环境 **预期效果**:完成本部分后,你将拥有一个可运行的OCR测试环境,能够识别简单的图片文字。 ### 环境

gitblog_01054的博客 729

识别文字(PB源码).zip

需要安装office2003 OCR组件.适用于简单的文字识别,识别率非常高。pb9测试可用,其他高版本应该也可用

(R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

线性回归,是概率统计学里最重要的统计方法,也是机器学习中一类非常重要的算法。线性模型简单理解非常容易,但是内涵是非常深奥的。尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点。 在任何线性模型中,能够直接“lm”(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value。在这之后,还要清楚一个...

qq_35837578的博客 7万+

Java集成第三方OCR识别——文档篇

Java快速集成OCR文字识别相关文章简介官方文档Web 配置操作第一步:成为百度AI开放平台的开发者第二步:开通文字识别服务1. 领取免费测试资源2. 创建应用第三步:使用文字识别服务1. 添加OCR依赖2. 下载相关工具包2. 手写文字识别3. 获取access_token第四步:测试 相关文章 简介 文字识别OCR(Optical Character Recognition)提供多场景、多语种、高精度的文字检测与识别服务,多项ICDAR指标居世界第一。广泛适用于金融服务、财税报销、法律政务、保险医疗、

Monsterof的博客 2558

SAP S/4HANA 物料分类账(ML)/实际成本核算(Actual Costing)——底表全景 & CKMLCP 执行后数据变化

插入 ML 重估凭证行项目:Dr/Cr 库存科目(期末库存调整)、Dr/Cr COGS/消耗科目(消耗重估)、Cr/Dr ML 重估抵消科目(PRY/PRV 类逻辑)also STPRS/VERPR/PEINH/LBKUM 等(但 S/4 很多“真理”在 ACDOCA)MLPP / MLPPF / MLCR / MLCRF / MLCD / CKMLMV003/004 等。Material Ledger Document(行项目明细:收货/发票价差/结算写入/重估相关)间接(PUP在CKMLCR;

weixin_52203666的博客 578

探索Java与Tess4J:轻松实现OCR图片文字识别

探索Java与Tess4J:轻松实现OCR图片文字识别 去发现同类优质开源项目:https://gitcode.com/ 在当今数字化时代,光学字符识别(OCR)技术已成为从图像中提取文本信息的重要工具。无论是在文档数字化、自动化数据录入,还是智能识别系统中,OCR技术都发挥着不可或缺的作用。本文将为您介绍一个基于Java和Tess4J库的开源项目,帮助您轻松实现OCR图片文字识别。 项目介绍 本...

gitblog_06573的博客 656

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 332

大模型-高通qnn基础

提供较低级别、高度可定制的统一API,通过单独的库加速所有AI加速器核心上的AI模型, 可以直接用于针对特定的加速器核心或从流行的运行时(包括Qualcomm Neural Processing SDK、TensorFlow Lite和ONNX运行时)委派工作负载。一个支持异构计算、系统级配置的一体化SDK,旨在将AI工作负载引导到我们平台上的所有加速器核心。为开发人员提供灵活性,包括核心间协作支持和其他高级功能。是一个为训练好的神经网络模型提供高级量化和压缩技术的库。

点滴的岁月 4091
上一篇: ES 集成Springboot带高亮
下一篇: xlsx 导入数据库
一个小白开发
博客等级 码龄7年 1244粉丝 34原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值