tesseract ocr 文字识别

windows 版

下载地址:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.3.0.20221214.exe

中文简体语言包下载:https://raw.githubusercontent.com/tesseract-ocr/tessdata/main/chi_sim.traineddata

操作

1、下载两个文件;

2、双击安装exe文件;

3、把安装根目录配置到 环境变量 Path中 ;

4、语言包 chi_sim.traineddata 放到安装目录的 tessdata 文件夹下;

5、cmd tesseract -v 验证安装结果;

6、系统编码集成:

java maven项目 引入 包

复制代码
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>5.13.0</version> <!-- 建议使用最新稳定版 -->
        </dependency>

编码:

复制代码
import jakarta.annotation.PostConstruct;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

/**
 * 图片文字识别工具类
 */
@Component
public class OcrUtils {

    @Value("${tesseract.datapath}")
    private String dataPathConfig;

    private static String dataPath;

    @PostConstruct
    private void init() {
        dataPath = dataPathConfig;
    }

    /**
     * 识别图片文件中的文字(MultipartFile 入参)
     *
     * @param file 上传的图片文件
     * @return 识别出的文字内容
     * @throws IOException 图片读取失败时抛出
     */
    public static String recognizeText(MultipartFile file) throws IOException {
        try (InputStream is = file.getInputStream()) {
            BufferedImage image = ImageIO.read(is);
            if (image == null) {
                throw new IOException("无法解析图片,请确认文件格式正确");
            }
            ITesseract instance = new Tesseract();
            instance.setDatapath(dataPath);
            instance.setLanguage("chi_sim");
            return instance.doOCR(image).replace(" ", "").replace("\n", "");
        } catch (TesseractException e) {
            System.err.println("OCR识别失败: " + e.getMessage());
            return "";
        }
    }

    /**
     * 识别 BufferedImage 图片对象中的文字
     */
    public static String recognizeImage(File image, String language) {
        ITesseract instance = new Tesseract();
        instance.setDatapath(dataPath);
        instance.setLanguage(language);
        try {
            return instance.doOCR(image);
        } catch (TesseractException e) {
            System.err.println("OCR识别失败: " + e.getMessage());
            return "";
        }
    }
}

亲测,可用

相关推荐
Maydaycxc21 小时前
跨境电商多账号自动化:RPA对接指纹浏览器与OCR识图实战
自动化·ocr·rpa
Miss roro1 天前
法律文书信息自动提取:OCR识别与AI技术在案件管理中的应用
人工智能·ocr·法律科技·律所管理系统·案件管理系统
Fleshy数模1 天前
基于机器视觉的工业产品型号识别与报警系统实现
python·ocr·pyqt
开开心心就好1 天前
带OCR识别的电子发票打印工具
运维·javascript·科技·游戏·青少年编程·ocr·powerpoint
weixin_408099671 天前
【实战】用易语言 + OCR API 打造自动文字识别工具(通用文字识别/截图识别,附完整源码)
ocr·文字识别·api调用·api开发·易语言·截图识别·石榴智能
weixin_307779132 天前
OCR图片文本提取代码
图像处理·python·opencv·自动化·ocr
AI人工智能+2 天前
基于OCR与深度学习的发票识别技术,重构报销系统效率
计算机视觉·自然语言处理·ocr·发票识别
小成Coder2 天前
【Jack实战】如何用 Core Vision Kit 给旅行票据做端侧 OCR 识别
华为·ocr·harmonyos·鸿蒙
AI人工智能+3 天前
机动车登记证识别技术通过计算机视觉与深度学习实现证件信息自动化提取,显著提升车辆管理效率
深度学习·计算机视觉·自然语言处理·ocr·机动车登记证识别
AI人工智能+4 天前
银行回单识别系统通过融合计算机视觉、深度学习和自然语言处理技术,实现了财务凭证的智能化处理
人工智能·深度学习·ocr·银行回单识别