Tess4j结果迭代器

时间:2013-11-01 18:17:11

标签: java ocr tesseract image-recognition

我有以下代码:

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 谢谢!

1 个答案:

答案 0 :(得分:2)

Tesseract是一个简化的API,仅展示TessAPI接口中最常用的方法。为了让文字更有信心,您需要使用TessAPI。图书馆的unit tests包含一些常见用例。你肯定想看看它们。