Java使用Tess4J 实现简单的图像识别

1.项目中引入(tess4j4.0以上的识别有较好优化,但是4.5以上版本在跑的时候,报错,不知道为啥,所以这里使用4.4最后一个版本)
<dependency>
    <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>4.4.1</version>
</dependency>

2.语言包下载 https://tesseract-ocr.github.io/tessdoc/Data-Files(访问页面没问题,但是下载要翻墙,需要的朋友可以联系我:2443904383@qq.com)

3.下面是示例代码

package com.example.tess4j;

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.io.File;

class MainTests {

    public static void main(String[] args) {
        // 识别图片的路径(修改为自己的图片路径)
        String path = "D:\\lll\\tess4jimg\\QQ图片20200615161321.png";

        // 语言库位置(修改为跟自己语言库文件夹的路径)
        String lagnguagePath = "D:\\project\\tess4j\\src\\main\\resources\\tessdata4.x";

        File file = new File(path);
        ITesseract instance = new Tesseract();

        //设置训练库的位置
        instance.setDatapath(lagnguagePath);

        // chi_sim:对简体中文有较好识别度
        // eng:对英文和数字有较好的识别度
        // chi_tra:对繁体中文有较好识别度
        instance.setLanguage("eng");
        String result = null;
        try {
            long startTime = System.currentTimeMillis();
            result =  instance.doOCR(file);
            long endTime = System.currentTimeMillis();
            System.out.println("Time is" + (endTime - startTime) + " 毫秒");
        } catch (TesseractException e) {
            e.printStackTrace();
        }

        System.out.println("result: ");
        System.out.println(result);
    }
}
发布者:songJian   点击数:109   发布时间:2020-06-23 14:35:13   更新时间:2020-06-23 14:36:13
正在加载评论...
相关文章