JAVA Tesseract OCR引擎

Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发,后来被Google收购并于2006年开源。识别效果不好,速度还慢,但是好早好早了。

一、POM依赖

XML 复制代码
   <!--OCR识别
        https://digi.bib.uni-mannheim.de/tesseract/tessdata_fast/ 训练文件下载
        -->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>5.12.0</version>            
        </dependency>

        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>5.14.0</version>
        </dependency>

记的要下载训练文件 chi_sim.traineddata

二、配置文件 TesseractOcrConfiguration

java 复制代码
import cn.cakeerp.util.StrUtil;
import net.sourceforge.tess4j.Tesseract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TesseractOcrConfiguration {

    @Bean
    public Tesseract tesseract() {
        Tesseract tesseract = new Tesseract();
        // 设置训练数据文件夹路径
        tesseract.setDatapath(StrUtil.erpConfig.getTraineddata());
        // 设置为中文简体
        tesseract.setLanguage("chi_sim");
        return tesseract;
    }
}

三、使用

java 复制代码
    @Resource
    private Tesseract tesseract;

    //直接就可以识别,也可以
    System.out.println(tesseract.doOCR(new File("d:\\2.jpg")));

    //也可以从 MultipartFile imageFile 里面识别

        InputStream is = null;
        try {
            is = new ByteArrayInputStream(imageFile.getBytes());
            BufferedImage bufferedImage = ImageIO.read(is);
            String textStr = tesseract.doOCR(bufferedImage);
            if (null == textStr || textStr.trim().equals("")) {
                return JsonResult.failed("识别失败,结果为空.");
            }          
            log.error("识别内容为:{}", textStr);
            return JsonResult.failed("未识别到订单号", -1);
        } catch (Exception e) {
            return JsonResult.failed(e.getMessage(), -1);
        } finally {
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

后续 在官方的仓库中下载到了最新的训练文件 50.2MB结果测试效果还是没啥变化,里面也没有什么可配置的参数。不知道别人怎么用呢。

tessdoc/Data-Files.md at main · tesseract-ocr/tessdoc · GitHub

相关推荐
liferecords7 小时前
PolyOCR-Venus:蚂蚁把 OCR 从『抄写员』练成『视觉智能体』,教师蒸馏还会自己下岗
大模型·ocr·强化学习·多模态
OCR_133716212758 小时前
移动端护照 OCR 识别开发实践:基于 ICAO9303 标准,快速实现护照 MRZ 信息提取
ocr
爱吃饼干的熊猫9 小时前
“Unlimited OCR“来了:文档解析从翻页时代进入整本时代
ocr
程序员Linc11 小时前
ONNXOCRSharp 开源手记 02|v0.4.0 PDF识别
开发语言·pdf·c#·ocr·onnxocrsharp
昨夜见军贴061611 小时前
纸质报告OCR审核的智能化跃升:IACheck AI报告文档审核Agent的技术路径
人工智能·ocr
楚识科技15 小时前
票据 OCR 识别技术深度解析:从算法原理到企业级落地实现
算法·ocr
沪上企服通2 天前
从票据采集到凭证生成:代账 pipeline 的 OCR、查重与规则引擎设计笔记
笔记·ocr
开开心心就好3 天前
一元二次方程求解工具,答案带详细步骤
java·服务器·开发语言·算法·pdf·ocr·perl
开开心心_Every3 天前
内存清理工具定时自动清理开机自启动
java·开发语言·spring·计算机外设·ocr·intellij-idea·excel
lank_M3 天前
截图OCR预处理在普通屏上翻车,Retina截图却没事
图像处理·人工智能·计算机视觉·ocr