安卓Tesseract和Leptonica OCR。读取单个框和字符。

3

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

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

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

是否有办法获得精确的框和其字符?


示例请。你的问题几乎无法理解。 - sschrass
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));

但是迭代器不提供可以调用 getBoxRects() 的箱子(Pixa)。我注意到 getCharacters 在 tess-two 中已被弃用,但这是获取字符级框信息的唯一方法... - martijno
你可以在迭代器上使用 getBoundingBoxgetBoundingRect - rmtheis
你好,我正在使用这个项目 https://github.com/rmtheis/android-ocr 并需要从图像中准确地获取小文本(大文本已扫描)。我卡在这里了。图像可能包含表格、空格或者像银行生成的收据之类的账单图像。我需要从账单中获取小文本。请尽快帮助我。谢谢! - Naveen
@Naveen 如果您有具体问题,请在StackOverflow上创建一个新问题,并包含所有相关细节和示例图片。 - rmtheis
你好,我不知道为什么无法提出问题。我需要使用 https://github.com/rmtheis/android-ocr 项目从硬拷贝(例如当前账单等)中扫描小文本。如何扫描更小的文本?请尽快帮助我。谢谢! - Naveen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接