医学影像的原始高宽比很重要,如何在保证高宽比的情况下,实现图像大小调整呢?以下是一个案例代码:

def resize_with_padding(image, target_size=(512, 512), interploate_type=Image.NEAREST):
    """调整图像大小并使用填充保持宽高比"""
    original_size = image.size
    ratio = min(float(target_size[0]) / original_size[0], float(target_size[1]) / original_size[1])
    new_size = tuple([int(x * ratio) for x in original_size])
    image = image.resize(new_size, interploate_type)

    new_image = Image.new("L", target_size)
    new_image.paste(image, ((target_size[0] - new_size[0]) // 2, (target_size[1] - new_size[1]) // 2))
    return new_image