3

我在 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();

在这里我可以看到每个字符的文本和框,但有时文本的大小与框数组的大小不同,则无法设置读取字符的框。

有没有办法获得确切的盒子和它的字符?

4

1 回答 1

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));
于 2013-02-04T17:23:27.657 回答