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

如何在OpenCV中将640*640图像的质心坐标转换为622*1186尺寸?

图像坐标转换公式及OpenCV实现

核心转换逻辑

图像坐标以左上角为原点(x轴向右,y轴向下),不同尺寸间的坐标转换基于宽高缩放比例计算:

假设:

  • 原图像尺寸:W1=640(宽),H1=640(高)
  • 目标图像尺寸:W2=622(宽),H2=1186(高)
  • 原坐标为 (x1, y1),转换后目标坐标为 (x2, y2)

转换公式:

x2 = x1 * (W2 / W1)
y2 = y1 * (H2 / H1)

示例计算

以原坐标 (622, 622) 为例:

  • x轴缩放比例:622/640 ≈ 0.9719,所以 x2 ≈ 622 * 0.9719 ≈ 604.7
  • y轴缩放比例:1186/640 ≈ 1.8531,所以 y2 ≈ 622 * 1.8531 ≈ 1156.2

若需要整数坐标,可对结果取整(如四舍五入或直接截断)。

OpenCV代码实现

import cv2

# 定义尺寸参数
original_w, original_h = 640, 640
target_w, target_h = 622, 1186

def convert_point(x, y):
    # 计算缩放比例
    w_scale = target_w / original_w
    h_scale = target_h / original_h
    # 转换并取整
    new_x = round(x * w_scale)
    new_y = round(y * h_scale)
    return (new_x, new_y)

# 测试示例点
original_point = (622, 622)
converted_point = convert_point(*original_point)
print(f"转换后坐标:{converted_point}")

注意事项

  • 上述公式适用于直接拉伸图像至目标尺寸的场景;若需保持原图像比例并添加黑边,需额外计算偏移量,逻辑会更复杂。
  • OpenCV中若涉及图像缩放,可结合cv2.resize的插值方式,但坐标转换无需依赖图像数据,直接按比例计算即可。

内容的提问来源于stack exchange,提问作者Muhammad Rizwan Munawar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:20:24