图像缩放后检测框为什么错位:Tofu6 客户端的坐标变换链
作者:Tofu Intelligence。本文由 AI 辅助整理,涉及自有设备的技术应用说明,不是第三方独立评测。文中流程为工程建议,不代表真实客户案例或实测性能。

一、先给每一种坐标起名字
设备输出的图像、模型输入、目标截图和客户端显示窗口可能具有不同尺寸。把这些坐标都叫“像素坐标”,容易让一个正确的检测框在显示时偏移,或者让鼠标点选对应到错误区域。
T-JSON文档定义了目标截图及其在原图中的位置信息。[1] 在Tofu6客户端集成中,应读取对应帧类型的完整字段定义,不将截图内坐标、原图坐标和显示坐标直接相加。不同字段是否从0或1起算,也必须按各自定义核实。
二、缩放与留边是两个变换
若原图尺寸为W×H,显示窗口为w×h,保持长宽比时的缩放比例为s=min(w/W,h/H)。水平和垂直留边分别为dx=(w−sW)/2、dy=(h−sH)/2。原图点(x,y)显示为(sx+dx,sy+dy),而不是仅乘以窗口宽度比例。
反向点选要先减去留边,再除以s。落在留边中的点击应视为无效,而不是强行钳制成图像边缘目标。这些公式假定图像没有额外旋转、裁切或镜像;存在其他变换时必须把它们纳入同一链路。

三、裁切与旋转不能靠偏移补丁解决
裁切意味着坐标原点改变,旋转可能交换宽高或改变坐标轴方向。正确做法是明确每一步的输入输出空间,并保留组合变换及逆变换。临时在最终位置加几个像素,可能只在某一分辨率下看起来正确。
对于检测框,不能只变换左上角而忘记右下角;存在旋转时应变换所有角点,再按显示方式生成包围区域。整数舍入尽量放在最后一步,避免多次转换积累误差。坐标超出范围时保留异常记录,不要默默画到边界上。
四、用人工构造点测试,而不是只看自然视频
建议使用带角点、中心点和网格的合成图,检查四角、中心、边界外和非等比窗口。再测试窗口最大化、分屏切换以及高DPI缩放。这样可以把几何实现问题与检测模型本身分开。
截图叠加还应确认图像与位置字段属于同一事件。即使空间变换正确,把旧框叠在新帧上仍会产生错位。缺失关联信息时应明确显示不确定状态,而不是用最近一帧强行配对并称为同步。

五、把坐标合同写进接口层
每个坐标结构至少记录空间名称、尺寸、起算方式、单位和有效范围。内部计算与界面显示最好分层,避免用户调整窗口就改变业务坐标。显示比例不是设备焦距,数字缩放也不应该被当成光学倍率。
本文的示意数据均为几何说明,不对应实际设备性能。完成坐标测试后,还需要结合具体固件和真实报文验证字段含义,不能仅凭公式正确就宣称整个客户端对接完成。
参考资料与图片说明
[1] Tofu Intelligence 官方技术文档:https://www.tofuwiki.com/docs/TJSON 。资料核对日期:2026-10-31。
三幅图片均为原创工程示意,不是设备实拍、客户现场或测试数据。引用用于核实型号能力及限制,无购买、联系方式或推广引导。





