P261 · 工具调用

工具交接时保留坐标单位

Preserve coordinate units through tool handoffs

位置数据同时传递单位、尺寸和原点;混用不同坐标来源时先转换。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

填写一份 PDF 时,结构提取给出的地址框用点表示,截图识别出的签名框用像素表示。教学输入是一页 600×800 点的文档及对应的 1200×1600 像素整页图片;签名框为左上原点矩形 (200,400,600,600)。直接合并四个数字会把签名放到错误位置。

具体做法

  1. 为每个矩形携带页号、页尺寸、图片尺寸、单位、原点和矩形顺序;确认图片确实对应同一整页。
  2. 统一到左上原点的点坐标:x 乘 600/1200,y 乘 800/1600。不要靠文件名猜测尺寸。
  3. 若写入器要求左下原点,使用页高减去底边和顶边,得到 (left,bottom,right,top);只转换一次。
  4. 检查边界及宽高,在副本中写入并渲染复查。无法确认裁剪或旋转关系时先停止定位。

反例

在这页 PDF 的签名框写入姓名。截图框是 (200,400,600,600),直接将它作为 PDF 注释框;其他结构提取字段照旧。

改进写法

在文档副本定位签名框。页为600×800点,整页图为1200×1600像素;输入框是左上原点的像素(left,top,right,bottom)=(200,400,600,600)。先转成点并标明原点,再按写入器要求转换。输出两次转换结果和渲染核对记录;映射信息不完整时不要写入。

为什么这样改

坐标数组没有自带单位和原点。先显式归一化,才能把结构提取与视觉识别交给同一个写入器;保留变换记录也便于查出重复翻转或页映射错误。

如何验证

教学计算:左上原点点坐标应为 (100,200,300,300);左下原点注释框应为 (100,500,300,600)。宽200点、高100点,均在页面内。渲染后还要确认姓名落在可见签名框,而不是只检查计算通过。

适用边界

上述比例只适用于对应的未旋转整页图。裁剪、非零页原点、旋转、缩放后的局部截图和误检需另建变换。正确换算不能保证文字大小或视觉定位正确;源代码片段也不是完整的几何验证器。

原文与版本

如何收录这些方法