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

如何将YoloV3检测得到的200*200边界框图像调整为368*368尺寸

200200行人裁剪图调整为368368输入尺寸的可行方案

以下是工业界常用的几类实现方法,可根据后续模型的特性按需选择:

1 直接强制缩放

  • 实现逻辑最简单,运算速度最快,直接调用resize方法将200200的图像强制拉伸为368368的目标尺寸
  • 缺点是会改变目标宽高比,导致行人形变,可能降低后续模型的识别精度
  • 参考代码:resized_img = cv2.resize(crop_img, (368, 368), interpolation=cv2.INTER_CUBIC)

插值方法可按需调整:放大场景优先用INTER_CUBIC/INTER_LINEAR保证画质,追求极致速度可换用INTER_NEAREST

2 保持宽高比+边缘填充

  • 目前最通用的预处理方案,完全不会改变原图的内容比例,避免行人形变
  • 操作逻辑:先将原图等比放大到长边等于368,再对短边两侧填充像素至368*368;填充值可选择128(中性灰)、原图边缘均值,也可以用黑色(0),降低填充区域对模型的干扰
  • 参考代码:
import cv2
h, w = crop_img.shape[:2]
# 计算等比缩放系数
scale = 368 / max(h, w)
new_h, new_w = int(h * scale), int(w * scale)
scaled_img = cv2.resize(crop_img, (new_w, new_h), interpolation=cv2.INTER_CUBIC)
# 计算上下、左右的填充边距
pad_top = (368 - new_h) // 2
pad_bottom = 368 - new_h - pad_top
pad_left = (368 - new_w) // 2
pad_right = 368 - new_w - pad_left
# 填充得到目标尺寸图像
resized_img = cv2.copyMakeBorder(scaled_img, pad_top, pad_bottom, pad_left, pad_right, cv2.BORDER_CONSTANT, value=(128, 128, 128))
  • 缺点是会引入无关的填充区域,需要后续模型对填充内容有一定鲁棒性

3 放大后中心裁剪

如果后续模型对图像边缘信息不敏感,可以选择该方案,既不会引入填充像素,也不会产生整体形变

  • 操作逻辑:先将200200的原图放大到略大于368368的尺寸,再裁剪出中心368*368的区域作为输入
  • 缺点是会丢失原图边缘的少量内容
  • 参考代码:
scaled_large = cv2.resize(crop_img, (370, 370), interpolation=cv2.INTER_CUBIC)
resized_img = scaled_large[1:369, 1:369]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:51:03