You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Cloud Vision API多边形顶点转换为RectF的left/top/right/bottom参数

解决方案

核心原理

Google Cloud Vision API返回的normalizedVertices是取值范围在[0,1]的归一化坐标,数值对应占原始图像宽/高的比例。要获取可用于RectF的外接矩形参数,本质是计算所有顶点的最小轴对齐外接矩形,同时要先处理API返回中可能存在的坐标缺省情况:若顶点缺失x字段则默认取0,缺失y字段默认取0。

具体计算步骤

  • 遍历当前检测对象的normalizedVertices数组的所有顶点
  • 初始化四个极值变量:minX = 1.0f、maxX = 0.0f、minY = 1.0f、maxY = 0.0f
  • 逐个处理顶点:先补全缺省值 currentX = 顶点.x ?: 0f,currentY = 顶点.y ?: 0f
  • 对比更新极值:minX = min(minX, currentX)、maxX = max(maxX, currentX)、minY = min(minY, currentY)、maxY = max(maxY, currentY)
  • 遍历完成后得到的四个归一化参数对应矩形的左、上、右、下边界

适配实际绘制尺寸

如果用于绘制的视图(比如ImageView)实际宽度为viewWidth、实际高度为viewHeight,将归一化参数换算为实际像素坐标即可直接生成RectF,示例代码(Kotlin Android)如下:

// 假设已经完成顶点遍历得到minX、maxX、minY、maxY
val left = minX * viewWidth
val top = minY * viewHeight
val right = maxX * viewWidth
val bottom = maxY * viewHeight
val targetRect = RectF(left, top, right, bottom)

验证说明

你提供的响应示例中,笔记本电脑的四个顶点x范围为0.16580.5109,y范围为0.59960.9928,按上述算法计算得到的矩形完全匹配检测到的物体边界。该算法为通用最小外接矩形计算逻辑,哪怕后续API返回任意多边形顶点,也能正确输出外围矩形参数。

内容的提问来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:36:03