如何在Android中使用Tesseract4Android获取带文本的边界框?
可以获取带文本的边界框数据
使用cz.adaptech.tesseract4android:tesseract4android:4.3.0完全能获取你需要的带文本的边界框数据,官方示例仅展示了纯文本获取,但库本身支持提取单词级别的边界框信息。
具体实现步骤如下:
- 初始化
TessBaseAPI并设置待识别的图像(比如从Bitmap、文件路径等设置) - 通过
getWords()方法获取所有识别出的单词列表,每个Word对象包含边界框和对应文本 - 遍历单词列表,解析边界框的坐标,按照你需要的格式输出
示例代码:
// 初始化TessBaseAPI(沿用你提供的初始化方式) TessBaseAPI tess = getTessBaseAPI(path, context); // 设置待识别的图像,这里以Bitmap为例 tess.setImage(yourBitmap); // 获取单词级识别结果 List<Word> words = tess.getWords(); for (Word word : words) { Rect box = word.getBoundingBox(); // 提取坐标:left, top, width, height int left = box.left; int top = box.top; int width = box.width(); int height = box.height(); String wordText = word.getText(); // 按目标格式输出 System.out.printf("(%d, %d, %d, %d) %s%n", left, top, width, height, wordText); } // 释放资源 tess.end();
说明:Word类是tesseract4android库提供的内置类,直接通过getWords()即可获取,无需额外配置。如果需要更细粒度的识别结果(比如字符级),也可以使用getCharacters()方法。
内容的提问来源于stack exchange,提问作者Yuliia Ashomok
相关产品推荐
相关产品推荐

