Android Tesseract& Leptonica OCR。阅读单个框和字符

时间:2013-01-29 13:01:17

标签: android ocr tesseract leptonica

我在Android上使用Tesseract,我有以下代码来提取字符串和从图像中读取的框:

TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(tess_path, "eng"); 
baseApi.setImage(bitmap);
String recognizedText = baseApi.getUTF8Text();
ArrayList<Rect> boxes = baseApi.getCharacters().getBoxRects();
Pixa pixa = baseApi.getCharacters();
baseApi.end();

在这里我可以看到每个字符的文本和方框,但有时文本的大小与box数组不同,那么就不可能设置带有字符读取的方框。

有没有办法获得确切的方框及其字符?

1 个答案:

答案 0 :(得分:3)

使用ResultIterator而不是getCharacters()

// Iterate through the results.
final ResultIterator iterator = baseApi.getResultIterator();
String lastUTF8Text;
float lastConfidence;
int count = 0;
iterator.begin();
do {
    lastUTF8Text = iterator.getUTF8Text(PageIteratorLevel.RIL_WORD);
    lastConfidence = iterator.confidence(PageIteratorLevel.RIL_WORD);
    count++;
} while (iterator.next(PageIteratorLevel.RIL_WORD));