2016-09-07 28 views
3

我有一个脚本迭代通过不同形式的图像。在解析Google Vision文本检测响应时,我使用'boundingPoly'中的XY坐标为每个文本项目专门查找表单不同部分中的数据。谷歌视觉OCR的不完整坐标值

我遇到的问题是,一些响应回来只有一个X坐标。例如:

{u'description': u'sometext', u'boundingPoly': {u'vertices': [{u'x': 5595}, {u'x': 5717}, {u'y': 122, u'x': 5717}, {u'y': 122, u'x': 5595} 

我给自己定一个try /除外(使用Python 2.7)来捕捉这个问题,但它总是同样的问题:KeyError: 'y'。我遍历数千种形式;到目前为止它已经发生了1000行中的10行。

有没有人有过这个问题?除了尝试重新提交请求(如果出现此错误)之外是否有修复?

回答

2

From the docs

boundingPoly

对象(BoundingPoly)

面部周围的边界多边形。边界框的坐标是原始图像的比例尺,与ImageParams中返回的一样。计算边界框以根据人的期望“框定”人脸。它基于具有里程碑意义的结果。 注意,如果只有部分人脸出现在要注释的图像中,则BoundingPoly中可能不会生成一个或多个x和/或y坐标(多边形将是无边界的)。

我相信这意味着在这种情况下,'y'值为0,或更一般地,边缘值。换句话说,它不知道有界poly的真正结束位置,因为文本一路走到图像的边缘,因此图像没有提供足够的信息来确定文本实际上在那里结束。只要图像提供,它结束于0'y'

+0

这是有道理给出它发生的地方;没有y坐标的文本位于图像的顶部(可能y的值为0)。 – crld