ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Tesseract For Java为可执行jar设置Tessdata_Prefix

2019-07-02 09:49:03  阅读:672  来源: 互联网

标签:java executable-jar maven tesseract tess4j


该项目的最终目标是获取jar并将其放在使用tesseract的目录中,并输出结果目录和输出txt文件.不过,我在使用tesseract时遇到了一些问题.
我正在使用Java中的tess4j与Maven合作,我想将我的代码变成可执行jar.该项目作为桌面应用程序工作正常,但每当我尝试使用java -jar fileName.jar运行(导出到jar后)它给我错误

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory
Failed loading language 'eng'
...

我在网上查看并且无法真正找到如何为jar设置tesseract并使路径正确.现在我使用maven并在我的pom文件(tess4j -v 3.0)中使用Tesseract依赖项,我的项目中有tessdata.

我对maven和jar文件相当新,之前从未使用过tesseract,但据我所知,从互联网上我正确设置了它.

有谁知道如何使tess4j指向我的项目中的tessdata目录,并有一个动态路径,所以我可以移动在多台计算机和地方使用它?

这就是我称之为Tesseract的方式

    Tesseract instance = new Tesseract();
    instance.setDatapath("src/main/resources");
    String result = instance.doOCR(imageFile);
    String fileName = imageFile.getName().replace(".jpg", "");
    System.out.println("Parsed Image " + fileName);
    return result;

编辑

这就是我尝试在我的代码中设置环境变量TESSDATA_PREFIX的方法

String dir = System.getProperty("user.dir");
System.out.println("current dir = " + dir);
ProcessBuilder pb = new ProcessBuilder("CMD", "/C", "SET");
Map<String, String> env = pb.environment();
env.put("TESSDATA_PREFIX", dir + "\\tessdata");
Process p = pb.start();

但这没有明显的效果.我仍然有同样的错误

编辑2

根据错误消息,我需要将它设置为tessdata的父目录,我也试过这个无济于事

编辑3

经过大量的搜索并尝试修复它,我不确定它是否可能. tesseract中的doOcr方法接受缓冲图像或文件,如果我的图像不是动态的,那就没关系,所以我不能将它们真正存储在jar中.更不用说TESSDATA_PREFIX仍然不会设置的事实.如果有人有任何想法,我仍然耳朵,我会继续寻找解决方案,但我不确定它会起作用

解决方法:

您可以调用instance.setDatapath方法将Tesseract指向tessdata文件夹的位置.

http://tess4j.sourceforge.net/docs/docs-3.0/

标签:java,executable-jar,maven,tesseract,tess4j
来源: https://codeday.me/bug/20190702/1355097.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有