繁体   English   中英

Tesseract OCR 在 Linux 上的 Java 中不起作用

[英]Tesseract OCR not working in Java on Linux

我在后端使用 Java 将一个战争文件部署到我的服务器。 我试图让 Tesseract 在 CentOS 上的 Java 中工作,但它根本行不通。 完美的作品在我的Windows本地主机,虽然。 我的代码是:

private void doOCR(File file) // The image file
{
    InputStream stream = new FileInputStream(file);

    ContentHandler handler = new BodyContentHandler();
    Metadata metadata = new Metadata();
    ParseContext context = new ParseContext();

    TesseractOCRConfig config = new TesseractOCRConfig();
    config.setTesseractPath(TESSERACT_PATH);
    // Path on Windows is C://Tesseract-ocr and path on Linux is /usr/local/bin
    context.set(TesseractOCRConfig.class, config);

    TesseractOCRParser tessParser = new TesseractOCRParser();       
    tessParser.parse(stream, handler, metadata, context);
    stream.close();
    System.out.println(handler.toString()); // handler.toString() prints extracted text
}

此代码适用于 Windows,但不适用于 Linux。 但是,我可以从命令行执行 Tesseract,并且输出文件包含正确的文本。 Tesseract 无法在 Linux 上使用 Java。 有什么我在这里想念的吗? 谢谢!

好的,我想出了我的问题。 在 Linux 上,tesseract 文件存储在许多不同的位置(即有些在 etc/tomcat6 中,有些在 var/lib/tomcat6 中,等等)。 在我的 Windows 机器上,所有文件都存储在同一个文件夹 (Tesseract-ocr) 中。 我在两台机器上都设置了 tesseract 可执行文件的路径,但我需要将所有 tesseract 数据文件放在同一位置。 进行此更改解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM