我有以下代码:
public String getName(BufferedImage subc){
String name=null;
Tesseract1 instance = new Tesseract1();
instance.setPageSegMode(8);
instance.setLanguage("eng");
instance.setTessVariable("tessedit_char_whitelist", "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789_.");
try {
name=instance.doOCR(subc);
} catch (TesseractException e) {System.err.println(e.getMessage());}
name=new StringTokenizer(name,"\n").nextToken();
return name;
}
其中,子是已经剪切并预处理该单词的图像。我想要的是要么获得对图像的识别的信心,要么迭代第一个,比方说,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 谢谢!
答案 0 :(得分:2)
Tesseract
是一个简化的API,仅展示TessAPI
接口中最常用的方法。为了让文字更有信心,您需要使用TessAPI
。图书馆的unit tests包含一些常见用例。你肯定想看看它们。