Azure Form Recognizer boundingBox转图像坐标规则问询
Azure Form Recognizer BoundingBox 转图像坐标计算规则
我来帮你梳理清楚Azure Form Recognizer的boundingBox转换为常规图像坐标的规则,这其实是两个关键点的结合:boundingBox的点顺序,以及坐标系统的转换。
1. BoundingBox的点结构
Form Recognizer返回的boundingBox是一个包含8个数值的数组,按左上 → 右上 → 右下 → 左下的顺序依次存储四个顶点的(X,Y)坐标,对应索引如下:
- 左上顶点:
(boundingBox[0], boundingBox[1]) - 右上顶点:
(boundingBox[2], boundingBox[3]) - 右下顶点:
(boundingBox[4], boundingBox[5]) - 左下顶点:
(boundingBox[6], boundingBox[7])
2. 坐标系统转换(核心)
Form Recognizer使用的是PDF/印刷行业的坐标系统:
- 原点在页面的左下角
- Y轴方向向上(数值越大,位置越靠上)
而我们常规图像渲染用的是计算机图形学坐标系统:
- 原点在图像的左上角
- Y轴方向向下(数值越大,位置越靠下)
所以需要对Y坐标进行转换,转换公式为:
图像Y坐标 = 页面高度(page.height) - Form Recognizer返回的Y坐标
用你的示例数据验证
拿你提供的示例Response来说:
- 页面高度
page.height = 792,宽度page.width = 612 - "Address:"的boundingBox是
[57.3, 683.0, 100.5, 683.0, 100.5, 673.7, 57.3, 673.7]
转换步骤:
- 提取原始的左上和右下点:
- 原始左上:
(57.3, 683.0) - 原始右下:
(100.5, 673.7)
- 原始左上:
- 转换Y坐标:
- 图像左上Y:
792 - 683.0 = 109.0 - 图像右下Y:
792 - 673.7 = 118.3
- 图像左上Y:
- 最终图像坐标:
- 左上(X1,Y1):
(57.3, 109.0) - 右下(X2,Y2):
(100.5, 118.3)
- 左上(X1,Y1):
这样得到的坐标就可以直接用于在图像上叠加识别文本的框了。
内容的提问来源于stack exchange,提问作者Daewoo Kim
相关产品推荐
相关产品推荐

