首页 > 解决方案 > 如何在同一 X 轴坐标上获取文本块 [Google Cloud Vision API]

问题描述

所以我正在尝试在 Android 中实现一个个人项目,您可以在其中扫描来自购物中心的不同收据。我想提出一个模块,通过自动化尽可能多的活动来帮助用户的手动输入。情况是:

  1. 我想获取收据的总和,知道作为标准,它可以在这样的一行中找到:TOTAL............ 33.9 Currency。我如何才能真正获得与包含“Total”的块在同一轴上的块?

  2. 同样的事情适用于每个单独的产品,我想获取每个单独的购物车产品的值及其值并将其放入 Android 中的编辑文本中,以便用户可以进行最后的修饰。

收据示例:

Mega Image 的购物收据

标签: androidmachine-learningocrgoogle-cloud-vision

解决方案


要逐行获取文本,您需要设置一个自定义逻辑,该逻辑将根据 Google Vision API 返回的符号处理行,这可以按照以下步骤进行:

  1. 创建 a 中返回的所有符号的集合TextAnnotation
  2. 遍历集合并string根据检查第一个符号的 X 坐标创建一条线,该坐标givenSymbol.BoundingBox.Vertices[2].X与所有其他符号的 X 坐标相对。
  3. 实施检查以跳过已处理的单词并考虑实施 X 偏移,这将检查给定的 X 坐标是否与您正在检查的坐标足够接近,以解释稍微倾斜的输入文本。

推荐阅读