我在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数组不同,那么就不可能设置带有字符读取的方框。
有没有办法获得确切的方框及其字符?
答案 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));