tiny-yolov3输入图像resize过程解析

def ResizePadding(height, width):
    desized_size = (height, width)  # desized_size = (640, 640)

    def resizePadding(image, **kwargs):
        old_size = image.shape[:2]      # old_size = 1920*1080
        max_size_idx = old_size.index(max(old_size))    # max_size_idx = 0
        ratio = float(desized_size[max_size_idx]) / max(old_size)   # ratio = 640*1.0/1920=0.33333
        new_size = tuple([int(x * ratio) for x in old_size])    # new_size = (1920*640/1920, 1080*640/1920) = (640, 360)

        if new_size > desized_size: # False
            min_size_idx = old_size.index(min(old_size))
            ratio = float(desized_size[min_size_idx]) / min(old_size)
            new_size = tuple([int(x * ratio) for x in old_size])

        image = cv2.resize(image, (new_size[1], new_size[0]))   # image = (640, 360)
        delta_w = desized_size[1] - new_size[1]                 # delta_w = 640 - 360 = 280
        delta_h = desized_size[0] - new_size[0]                 # delta_h = 640 - 640 = 0
        top, bottom = delta_h // 2, delta_h - (delta_h // 2)    # top, bottom = 0//2, 0-(0//2) = 0, 0
        left, right = delta_w // 2, delta_w - (delta_w // 2)    # left, right = 280//2, 280-(280//2) = 140, 140

        image = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT)    # 上、下、左、右填黑边 image = (640, 640)
        return image
    return resizePadding

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值