Pytorch实现上采样upsample和下采样downsample 简单调用函数即可实现,超简单的代码块调用

该博客介绍了两个用于图像处理的函数,分别实现了上采样和下采样操作。这两个函数使用PyTorch的`torch.nn.functional.interpolate`,支持最近邻、双线性和双三次插值模式,适用于3通道或4通道的RGB或包含Alpha通道的图像。文章强调了尺寸变化过程中数据归一化的必要性,以确保数值在[0,1]范围内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


# 上采样函数,输入数据格式示例:tensor维度[3,300,300],即3通道RGB,大小300×300,当然4通道图像也能做
def upsample(image_tensor, width, height, mode):
    # mode可用:最近邻插值"nearest",双线性插值"bilinear",双三次插值"bicubic",如mode="nearest"
    image_upsample_tensor = torch.nn.functional.interpolate(image_tensor.unsqueeze_(0), size=[width, height], mode=mode)
    image_upsample_tensor.squeeze_(0)
    # 将数据归一到正常范围,尺寸改变过程可能数值范围溢出,此处浮点数据位[0,1],整数数据为[0,255]
    image_upsample_tensor = image_upsample_tensor.clamp(0, 1)  
    return image_upsample_tensor


# 下采样函数,输入数据格式示例:tensor维度[3,300,300],即3通道RGB,大小300×300,当然4通道图像也能做
def downsample(image_tensor, width, height):
    image_upsample_tensor = torch.nn.functional.interpolate(image_tensor.unsqueeze_(0), size=[width, height])
    image_upsample_tensor.squeeze_(0)
    # 将数据归一到正常范围,尺寸改变过程可能数值范围溢出,此处浮点数据位[0,1],整数数据为[0,255]
    image_upsample_tensor = image_upsample_tensor.clamp(0, 1)
    return image_upsample_tensor


分享创造快乐,欢迎复制使用!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦星辰.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值