ML Kit文本识别:如何根据图像中的位置获取文本?

7

我正在制作一个用于扫描收据并将数据存入数据库的应用程序。我尝试使用ML Kit文本识别,效果非常好。但是,我在提取已识别文本中的数据时遇到了问题。以下是一个示例:

这是收据的格式,也是我想要获取数据的方式:

+--------+--------+-------+-------+
| Amount |  Name  | Price | Total |
+--------+--------+-------+-------+
|      1 | Cheese |       | 1,15  |
|      1 | Eggs   |       | 2,59  |
|      2 | Milk   | 0,99  | 1,98  |
|      1 | Butter |       | 0,80  |
+--------+--------+-------+-------+

然而,在运行文本识别时,它以非常奇怪的方式格式化数据。例如,上面的收据将给出以下块:
Amount
Price
Name Cheese Eggs Milk 0,99
Butter
Total 1,15 2,59
1,98 0,80

似乎跳过了金额列中的单数字,但我可以解决这个问题。然而,我无法弄清楚如何将上述数据解析为我想要的数据,特别是将价格与名称相连接。有没有办法改变块,只取收据的行或列,而不是随机呢?
编辑:当使用行或元素而不是块时,得到以下结果:
Amount
Price
Name
Cheese
Eggs
Milk
0,99
Butter
Total
1,15
2,59
1,98
0,80

然而,我仍然面临同样的问题:如何将物品与正确的价格配对?

1
您可以获取三种级别的文本结果 - 区块、行和元素(以递增的粒度)- 您正在使用哪个级别?请参见 https://developers.google.com/ml-kit/vision/text-recognition/android#4.-extract-text-from-blocks-of-recognized-text - Hoi
感谢您的回答!如帖子所述,我发布的结果是块。 - Daantje
1个回答

5

谢谢您的回答!我尝试了那个方法,但是我仍然有同样的问题:如何将物品与正确的价格配对? - Daantje
4
你需要根据文本框的坐标,使用 element.cornerPointselement.boundingBox 来进行自己的关联。 - Hoi

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