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 "";
        }
    }
}

亲测,可用

相关推荐
楚识科技2 天前
定制 OCR 服务:非标证件与表格的 XML 字段映射实践
xml·ocr
土星云SaturnCloud2 天前
超轻量 OCR 实战:PP-OCR 边缘部署实践
服务器·人工智能·ai·ocr·边缘计算
AI人工智能+2 天前
通用表格识别技术:突破传统OCR只能提取零散文本、却读不懂表格行列结构与合并单元格的局限性
深度学习·ocr·表格识别
AI人工智能+3 天前
银行回单识别系统融合计算机视觉、深度学习和自然语言处理三大AI技术,实现银行回单自动转化为可直接入账的结构化数据
深度学习·ocr·银行回单识别
HZZD_HZZD4 天前
远传水表系统技术选型:大口径物联网水表与 OCR 摄像水表对比
物联网·ocr
聚美智数4 天前
快递面单信息识别-快递面单OCR-快递面单OCR图片文字识别-快递面单OCR识别
ocr
楚识科技5 天前
银行单据OCR识别:非结构化金融数据的结构化治理路径
金融·ocr
Sinosecu-OCR5 天前
OCR多语言识别怎么评估?中文、英文、日韩文及小语种的真实挑战
ocr·文字识别·ocr识别·外文识别
辣香牛肉面5 天前
Wondershare PDFelement Professional v12.1.24.4310+OCR 万兴PDF编辑器
pdf·编辑器·ocr