问题描述
我使用 API version v1beta3 解析了一个 PDF 文件并获得了一个表格的坐标,如下所示。
"normalizedVertices": [
{
"x": 0.6894705,"y": 0.016400337
},{
"x": 0.87983346,"y": 0.026072329
},{
"x": 0.6894705,"y": 0.026072329
}
]
如何将这些转换为 PDF 坐标?
解决方法
我测试了一份来自 Document AI docs 的 pdf 表格 (gs://cloud-samples-data/documentai/loan_form.pdf)。我同时使用了 v1 和 v1beta3,得到了相同的结果并且按预期工作。
normalizedVertices
返回的 x 和 y 值是从 0 到 1。文档 AI 计算 x 和 y 相对于左上角原点的值的图像。此 document 中解释了边界框逻辑。 online.sodapdf.com 是相对于原点计算 x 的值,相对于最大值点计算 y 的值。
要将值转换为实际的 x 和 y 坐标,就像在 online.sodapdf.com 中一样,请参阅转换:
x = x * width
y = height - (y * height))
为了测试这一点,示例文档的宽度 = 612 和高度 = 792,并选择了一个对象来转换坐标。
loan_form.pdf 中返回的对象具有在“NormalizedVertex”列下显示的坐标。使用上面的公式,您将获得转换后的坐标。计算值可能与实际值相差很小,这可能是由于两种工具的对象检测算法所致。请参阅下面完成的测试:
被测文档的宽度和高度:
检测到的测试对象loan_form.pdf:
在 online.sodapdf.com 中检测到的测试对象: