将tensor转换为image

56 篇文章 3 订阅 ¥39.90 ¥99.00

 将图片转换为tensor的时候,图片发生了几个变化;

  • 首先图片的通道维度发生了变化,从h,w,c变化成了b,c,h,w
  • 图像的像素范围发生了变化,从0-255变化成了0-1
  • 图片的数据类型发生了变化,从np.uint8变成了torch.float32

所以要想将tensor变成image也需要从以上三个维度进行考虑。

image = tensor.squeeze(0).permute(1, 2, 0).mul(255).clamp(0, 255).cpu().numpy().astype("uint8")
def tensor_to_image(tensor):
    if tensor.dim()==4:
        tensor=tensor.squeeze(0)  ###去掉batch维度
    tensor=tensor.permute(1,2,0) ##将c,h,w 转换为h,w,c
    tensor=tensor.mul(255).clamp(0,255)  ###将像素值转换为0-255之间
    tensor=tensor.cpu().numpy().astype('uint8')  ###
    return tensor

在torchvision中已经封装了transform,其中包含transforms.ToTensor,transforms.ToPILImage函数可以直接进行转换。但是需要注意输入的数据类型。这个具体使用的时候可以看一下官方文档


                
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一壶浊酒..

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

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

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

打赏作者

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

抵扣说明:

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

余额充值