根据Net输入,对图片进行保持纵横比resize,并填充

2021-11-04  本文已影响0人  一个摸鱼AI喵

方式一: 以比例较大边进行resize后去覆盖zeros图片

def resize2netsize(img, input_size=(224, 224)):
    im_ratio = float(img.shape[0]) / img.shape[1]  # 图片的高/宽
    model_ratio = float(input_size[1]) / input_size[0]  # 图片与网络输入的 高/宽
    if im_ratio > model_ratio:
        new_height = input_size[1]  # 原图改高=设置高
        new_width = int(new_height / im_ratio)  # 宽进行缩小
    else:
        new_width = input_size[0]
        new_height = int(new_width * im_ratio)
    det_scale = float(new_height) / img.shape[0]  # 缩放比例
    resized_img = cv2.resize(img, (new_width, new_height))
    img_ret=np.zeros(shape=(input_size[1],input_size[0],3),dtype=np.uint8)
    img_ret[:new_height,:new_width,:]=resized_img
    return img_ret

方法二:tesorflow.image

tf.image.resize_with_pad(img,高,宽,method='bilinear')
上一篇下一篇

猜你喜欢

热点阅读