[英]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.