如何使用Tesseract从Tika OCR中提取数据值

3

你好,我正在尝试使用Tika的Tesseract来从图像中提取文本内容。

Parser parser = new AutoDetectParser();
        BodyContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();

        TesseractOCRConfig config = new TesseractOCRConfig();
        config.setTesseractPath("/usr/local/bin/");
        ParseContext parseContext = new ParseContext();
        parseContext.set(TesseractOCRConfig.class, config);



        try {
            parser.parse(stream, handler, metadata, parseContext);
        } finally {
            stream.close();
        }

        System.out.println(handler.toString());

我总是收到一个空值? 我不确定如何从解析器中获取内容,可以有人帮助我吗?


如果您直接调用Tesseract解析器而不是通过AutoDetectParser进行调用,会发生什么? - Gagravarr
我收到了相同的空值。但是当我在终端中使用Tesseract时,它可以正常工作。 - Ramesh
你尝试过按照Troubleshooting Tika steps中的步骤进行故障排除吗? - Gagravarr
1
你好 Ramesh?你搞定了吗?能分享一下解决方案吗?谢谢。 - delkant
1个回答

0

如果你的系统路径中已经有了tesseract,那么你就不需要声明config.setTesseractPath("/usr/local/bin/"),首先可以通过以下方式进行检查:

public static boolean checkIfExecutableInPath(String exec) {
    String path = System.getenv("PATH");
    if (StringUtils.isNotBlank(path)) {
        for (String dir : path.split(":")) {
            if (new File(dir, exec).exists()) {
                return true;
            }
        }
    }
    return false;
}

并将以下代码添加到您的程序中:

if (!checkIfExecutableInPath("tesseract")) {
    config.setTesseractPath(pathToTesseractDir);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接