2013-11-01 62 views
0

我有以下代码:Tess4j结果迭代器

public String getName(BufferedImage subc){ 
     String name=null; 
     Tesseract1 instance = new Tesseract1(); 
     instance.setPageSegMode(8); 
     instance.setLanguage("eng"); 
     instance.setTessVariable("tessedit_char_whitelist", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_."); 
     try {   
      name=instance.doOCR(subc); 
     } catch (TesseractException e) {System.err.println(e.getMessage());} 
     name=new StringTokenizer(name,"\n").nextToken(); 
     return name; 
} 

其中SUBC已经切割和预处理字的形象。我想要的是要获得对图像的识别的信心,或者重复第一个,比如30个最可能的单词。我发现的例子是这样Tess4J: How to get a Character's confidence value?,但它打破了在第一线,

TessResultIterator ri = TessAPI1.TessBaseAPIGetIterator(api); 

当我把我的对象“实例”作为参数“API”,有的试图用getpointer,我已经不同对象后到目前为止没有运气。这里http://tess4j.sourceforge.net/docs/docs-1.0/net/sourceforge/tess4j/package-summary.html,在课堂总结中,我明白,对象Tesseract或Tesseract1对于我想要做的并不是最合适的,但是我没有设法通过TessAPI或TessAPI1从图像中识别单词。 C++中的ResultIterator看起来非常简洁,但有指针​​:https://code.google.com/p/tesseract-ocr/wiki/APIExample 谢谢!

回答

2

Tesseract是一个简化的API,只提供TessAPI接口中最常用的方法。要获得文本信心,您需要使用TessAPI。图书馆的​​包括一些常见的用例。你一定要看看他们。