Tess4J:无效的内存访问

Posted

技术标签:

【中文标题】Tess4J:无效的内存访问【英文标题】:Tess4J: Invalid memory access 【发布时间】:2013-11-22 13:52:27 【问题描述】:

我试图在我的项目中使用 Tess4J 从图像中提取文本。尝试运行 OCR 时出现以下错误: 线程“main”java.lang.Error 中的异常:内存访问无效

    try 
        File imageFile = new File("example4.jpg");
        Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
        //Tesseract1 instance = new Tesseract1();
        String result = instance.doOCR(imageFile);
        System.out.println(result);
     catch (Exception e) 
        e.printStackTrace();
       

【问题讨论】:

本机代码中的错误。我建议你向 Tess4J 报告。 发生在任何图像或仅此一个? 【参考方案1】:

当我设置解决问题的数据路径时,您可以设置我遇到同样问题的数据路径 试试这个

instance1.setDatapath("D://Hotel_project//Tess4J-1.2-src//Tess4J//tessdata");

【讨论】:

项目在netbean中运行时完成,但运行可执行jar后出错【参考方案2】:

您必须定义要使用的训练数据的数据路径。如果您不指定语言,它将假定它是 eng。

例如,如果您的项目路径是 PROJECT,而您的训练数据位于 PROJECT/data/tessdata/eng.traineddata

tess.setDatapath("data");
tess.setLanguage("eng");

请记住,“tessdata”不应位于您指定的路径中

【讨论】:

如果我的文件夹结构是WEB-INF/classes/tessdata/eng.trainddata 怎么办?【参考方案3】:

如果你在 32 位 JVM 上运行

请尝试使用 Tesseract1 instance = new Tesseract1();

而不是使用 Tesseract 实例 = Tesseract.getInstance();

【讨论】:

我试试你的解决方案它不起作用。他们得到同样的错误

以上是关于Tess4J:无效的内存访问的主要内容,如果未能解决你的问题,请参考以下文章

在 Solaris 上找到错误的内存访问

加载C:\windows\system32\ffydi.dll 内存分配访问无效

[转]System.DllNotFoundException: 无法加载 DLL“*.dll”: 内存位置访问无效。 (异常来自 HRESULT:0x800703E6)

加载C:\WINDOWS\system32\smiji.dll时出错 内存分配访问无效

Linux内核中使用内存检测

在kernel中使用内存检测