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

Java 如何使用Tesseract从Tika OCR中提取值,java,apache-tika,Java,Apache Tika,您好,我正在尝试使用Tesseract和Tika从图像中提取文本内容 Parser parser = new AutoDetectParser(); BodyContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); TesseractOCRConfig config = new TesseractOCRConfig();

您好,我正在尝试使用Tesseract和Tika从图像中提取文本内容

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());

我总是收到一个空值?我不知道如何从解析器中获取内容,有人能帮我吗?

您不必声明
config.settsseractpath(“/usr/local/bin/”)
如果您的系统路径中有
tesseract
,请首先检查它,例如:

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

如果您尝试直接调用Tesseract解析器,而不是通过AutoDetectParser调用,会发生什么?我收到相同的空值。但是,当我在终端中使用Tesseract时,它工作得很好。你有没有试着遵循任何一个?嗨,Ramesh?你成功了吗??你能分享解决方案吗?tnx。