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

如何将Android的Rect对象转换为OpenCV的Rect对象

Android Rect 与 OpenCV Rect 正确转换方案

核心坐标定义差异

  • Android android.graphics.Rect:通过左边界x(left)、上边界y(top)、右边界x(right)、下边界y(bottom)四个值确定矩形范围。
  • OpenCV org.opencv.core.Rect:通过左上角x坐标(x)、左上角y坐标(y)、矩形宽度(width)、矩形高度(height)四个值确定矩形范围。

两者共享同一坐标体系:以图像左上角为原点(0,0),y轴向下递增,转换时无需调整坐标方向。


转换代码实现

1. Android Rect → OpenCV Rect

直接复用Android Rect的width()和height()方法(内部已实现right-left、bottom-top计算):

android.graphics.Rect androidRect = new android.graphics.Rect(10, 20, 100, 150);
org.opencv.core.Rect opencvRect = new org.opencv.core.Rect(
    androidRect.left,
    androidRect.top,
    androidRect.width(),
    androidRect.height()
);

2. OpenCV Rect → Android Rect

通过OpenCV Rect的x+width得到右边界,y+height得到下边界:

org.opencv.core.Rect opencvRect = new org.opencv.core.Rect(10, 20, 90, 130);
android.graphics.Rect androidRect = new android.graphics.Rect(
    opencvRect.x,
    opencvRect.y,
    opencvRect.x + opencvRect.width,
    opencvRect.y + opencvRect.height
);

注意事项

  • 避免手动计算宽高:Android Rect的width()和height()已经封装了边界差值计算,直接调用能减少人为错误。
  • 确认坐标体系一致性:如果应用中存在自定义坐标翻转(比如将y轴设为向上),则需要额外调整y值,但默认图像场景下无需处理。

内容的提问来源于stack exchange,提问作者Víctor Martín

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:02:37