使用tess4j识别中文

1、介绍

  • Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。
  • Tess4J则是Tesseract在Java PC上的应用。
  • 在英文和数字识别中性能还是不错的,但是在中文识别中,无论速度还是识别率还是较弱,建议有条件的话,针对场景进行训练,会获得较好结果,本文仅对目前Tess4J的用法进行介绍。

2、简单使用

创建maven项目,导入pom依赖

 <!-- https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j -->
        <dependency>
            <groupId>net.sourceforge.tess4j</groupId>
            <artifactId>tess4j</artifactId>
            <version>3.4.0</version>
        </dependency>

编写代码

public static void main(String[] args) {
        File imageFile = new File("E:\\maoxiangyi\\code\\findme\\src\\main\\resources\\img1.png");
        Tesseract tessreact = new Tesseract();
        tessreact.setDatapath("E:\\itcast\\env\\tess4j\\tessdata");
        tessreact.setLanguage("chi_sim");
        try {
            String result = tessreact.doOCR(imageFile);
            System.out.println(result);
        } catch (TesseractException e) {
            System.err.println(e.getMessage());
        }
    }

两点需要注意

  • 需要指定训练集 训练集到 github 下载。
  • 默认是英文识别,如果做中文识别,需要单独设置
tessreact.setLanguage("chi_sim");

3、效果

图片1的内容(你好),能够很好的识别

图片2的内容(一段话),识别起来就点尴尬


下文是图片2识别出来的效果

具实甲文分词要达到铰好的效果y 亘法诚然重要y 词度也是菲棠关泣y 而且词度还要与时倡迸的目
动更新y 三年前的网络语言在今天已经是过去式了y 如果词度不更新分词结果肯定是乱的一塌糊
涂 。

图片2的内容(验证码),简直没法用。

结果是乱码

标签: none

相关文章推荐

添加新评论,含*的栏目为必填