2016-04-22 54 views
0

我刚开始尝试写一个简单的java代码来做一些简单的OCR,使用代码和建议找到here在Windows中使用tesseract的Java OCR程序

我已经安装了库,并且IDE(NetBeans)中的项目看起来就像我附加的图片。

我得到这些错误:

10:47:30.099 [主] WARN net.sourceforge.tess4j.util.LoadLibs - 来源“C:\用户\西蒙%20Bothner \文档\的NetBeansProjects \ OCRTest \编译\类\ Win32的x86-64' 的不存在

java.io.FileNotFoundException:源 “C:\用户\西蒙%20Bothner \文档\的NetBeansProjects \ OCRTest \建立\类\ Win32的x86的64'不存在

at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1074) 
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038) 
at net.sourceforge.tess4j.util.LoadLibs.copyResources(LoadLibs.java:138) 
at net.sourceforge.tess4j.util.LoadLibs.extractTessResources(LoadLibs.java:105) 
at net.sourceforge.tess4j.util.LoadLibs.<clinit>(LoadLibs.java:59) 
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42) 
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196) 
at Main.main(Main.java:15) 

线程“main”java.lang.Uns中的异常atisfiedLinkError:找不到指定的模块。

at com.sun.jna.Native.open(Native Method) 
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:263) 
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403) 
at com.sun.jna.Library$Handler.<init>(Library.java:147) 
at com.sun.jna.Native.loadLibrary(Native.java:502) 
at com.sun.jna.Native.loadLibrary(Native.java:481) 
at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:77) 
at net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:42) 
at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212) 
at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196) 
at Main.main(Main.java:15) 

C:\用户\西蒙Bothner \应用程序数据\本地\的NetBeans \缓存\ 8.1 \执行人-片段\ run.xml:53:的Java返回:1 BUILD FAILED(总时间:0秒)

我试图用this教程,但我似乎缺少一个.dll,在liblept168.dll ...

有人可以帮助我?我很新,并且似乎无法得到这个工作...

非常感谢! :)

+0

也许这个答案可能有助于找到问题:http://stackoverflow.com/questions/35547211/issue-with-the-libtesseract303-dll-in-netbeans#35553331 – SubOptimal

+0

Tess4J教程页面包括NetBeans示例:http: //tess4j.sourceforge.net/tutorial/ – nguyenq

+0

检查出答案后,会尽量让它起作用,谢谢! :) 试过教程以下,但不能得到它的工作:/ – Simon

回答

0

第1步:http://tphangout.com/how-to-use-the-tesseract-api-to-perform-ocr-in-your-java-code/
打开上面的链接,看看如何在Java中正确安装Tesseract。

第2步:阅读它,如果你仍然得到“库未打开”错误,下载Microsoft Visual Studio的> 12.0,并更新你的JDK版本后(我也得到了同样的错误)。

第3步:

public class tesserct 
{ 
    public static void main(String[] args) 
    { 
     //System.setProperty("jna.library.path", "64".equals(System.getProperty("sun.arch.data.model")) ? "lib/win32-x86" : "lib/win32-x86-64"); 

     System.setProperty("jna.library.path", "32".equals(System.getProperty("sun.arch.data.model")) ? "lib/win32-x86" : "lib/win32-x86-64"); 

     File imageFile = new File("F:\\Wallpaper & photo\\wallpaper\\holi wollpepar\\happy-holi-2013-hd-wallpaper1.jpg"); 
     ITesseract instance = new Tesseract(); // JNA Interface Mapping 
     // ITesseract instance = new Tesseract1(); // JNA Direct Mapping 
     File tessDataFolder = LoadLibs.extractTessResources("tessdata"); // Maven build bundles English data 
     instance.setDatapath(tessDataFolder.getParent()); 

     try { 
      String result = instance.doOCR(imageFile); 
      System.out.println(result); 
     } catch (TesseractException e) { 
      System.err.println(e.getMessage()); 
     } 
    } 

您的NetBeans运行上面的代码,并尝试它。