Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找函数时出错';TessBaseAPICreate';:libtesseract.so:未定义符号:TessBaseAPICreate_Java_Ocr - Fatal编程技术网

Java 查找函数时出错';TessBaseAPICreate';:libtesseract.so:未定义符号:TessBaseAPICreate

Java 查找函数时出错';TessBaseAPICreate';:libtesseract.so:未定义符号:TessBaseAPICreate,java,ocr,Java,Ocr,我创建了一个简单的swing应用程序,它可以进行某种形式的ocr。 问题是我有一个实用程序类,它有一个静态方法 public static String readImage(BufferedImage image){ String str = null; //Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping Tesseract1 instance = new Tesserac

我创建了一个简单的swing应用程序,它可以进行某种形式的ocr。 问题是我有一个实用程序类,它有一个静态方法

public static String readImage(BufferedImage image){
    String str = null;

    //Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping
     Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping

     try {
        System.out.println("Starting OCR process at " + new Date() + "... ");
        str = instance.doOCR(image);            
     } catch (TesseractException e) {
        System.err.println(e.getMessage());
     }        
     return str;
}
现在,当我使用此方法时,会出现以下错误

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Error looking up function 'TessBaseAPICreate': libtesseract.so: undefined symbol: TessBaseAPICreate
at com.sun.jna.Function.<init>(Function.java:179)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:391)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:371)
    at com.sun.jna.Native.register(Native.java:1401)
    at com.sun.jna.Native.register(Native.java:1065)
    at net.sourceforge.tess4j.TessAPI1.<clinit>(TessAPI1.java:37)
    at com.discusit.ocr.ocrutil.OCRUtil.readImage(OCRUtil.java:22)
    at com.discusit.form.OCRForm.browseButtonActionPerformed(OCRForm.java:350)
    at com.discusit.form.OCRForm.access$000(OCRForm.java:26)
    at com.discusit.form.OCRForm$1.actionPerformed(OCRForm.java:103)
t javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:694)
    at java.awt.EventQueue$3.run(EventQueue.java:692)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:708)
    at java.awt.EventQueue$4.run(EventQueue.java:706)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
线程“AWT-EventQueue-0”java.lang.UnsatifiedLinkError中出现异常:查找函数“TessBaseAPICreate”时出错:libtesseract.so:未定义的符号:TessBaseAPICreate 位于com.sun.jna.Function.(Function.java:179) 位于com.sun.jna.nativellibrary.getFunction(nativellibrary.java:391) 位于com.sun.jna.nativellibrary.getFunction(nativellibrary.java:371) 位于com.sun.jna.Native.register(Native.java:1401) 位于com.sun.jna.Native.register(Native.java:1065) 位于net.sourceforge.tess4j.TessAPI1.(TessAPI1.java:37) 位于com.discusit.ocr.ocrutil.ocrutil.readImage(ocrutil.java:22) 在com.discusit.form.OCRForm.browseButtonActionPerformed上(OCRForm.java:350) 访问com.discusit.form.OCRForm.access$000(OCRForm.java:26) 在com.discusit.form.OCRForm$1.actionPerformed上(OCRForm.java:103) t javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 位于javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 在javax.swing.DefaultButtonModel.fireActionPerformed上(DefaultButtonModel.java:402) 在javax.swing.DefaultButtonModel.setPressed中(DefaultButtonModel.java:259) 在javax.swing.plaf.basic.BasicButtonListener.MouseRelease(BasicButtonListener.java:252) 位于java.awt.Component.ProcessMouseeEvent(Component.java:6505) 位于javax.swing.JComponent.ProcessMouseeEvent(JComponent.java:3321) 位于java.awt.Component.processEvent(Component.java:6270) 位于java.awt.Container.processEvent(Container.java:2229) 位于java.awt.Component.dispatchEventImpl(Component.java:4861) 位于java.awt.Container.dispatchEventImpl(Container.java:2287) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.LightweightDispatcher.RetargetMouseeEvent(Container.java:4832) 位于java.awt.LightweightDispatcher.ProcessMouseeEvent(Container.java:4492) 位于java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 位于java.awt.Container.dispatchEventImpl(Container.java:2273) 位于java.awt.Window.dispatchEventImpl(Window.java:2719) 位于java.awt.Component.dispatchEvent(Component.java:4687) 位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) 在java.awt.EventQueue.access$200(EventQueue.java:103) 位于java.awt.EventQueue$3.run(EventQueue.java:694) 在java.awt.EventQueue$3.run(EventQueue.java:692) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 在java.awt.EventQueue$4.run(EventQueue.java:708) 在java.awt.EventQueue$4.run(EventQueue.java:706) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 位于java.awt.EventQueue.dispatchEvent(EventQueue.java:705) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 在java.awt.EventDispatchThread.PumpeEventsforFilter(EventDispatchThread.java:161) 位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:150) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 我已经放置了liblept168.dll, 我的项目根文件夹中的libtesseract.so和libtesseract302.dll


我不知道该怎么办。提前谢谢

您首先需要将
.so
文件放在适当的位置。如果您对软链接有问题,请查看Tesseract论坛。

我使用的图像是一些表单的扫描图像。这些表格也和下面的一样:我怎样才能正确识别字母。“这篇文章”已经不存在了。这就是为什么建议不要只是将链接粘贴到非站点。