【深度学习】图片与张量的相互转换

本文主要讲述了如何使用torchvision将图片转换为张量(tensor)及如何将张量(tensor)对应的图片进行保存。这里的tensor不管是不是3通道的都能够进行保存(因为我看了一些其他的保存方式要求tensor必须是3通道,即RGB,才能保存)。但是保存一张维度为[1, 512, 512]的图,保存成图片后读取这张图片,得到的维度会是[3, 512, 512]

一、图片转张量(tensor)

# 导入必要的包
from PIL import Image
from torchvision.transforms import transforms

# 定义ToTensor的transform
transform = transforms.Compose([transforms.ToTensor()])

# 读入指定路径下的图片
image = Image.open('./metallic_roughness/metallic_roughness_6.jpg')
# 这里对图片应用transform,就转换为了张量
roughness_simage = transform(image)

# 转换为了张量就可以对张量进行任意操作了,以下是我应用需求的一些操作
# 因为我读入的图片是将两个材质属性合并到了一张图像上(3通道),所以我需要把一张图像里的两个属性分开并保存
roughness_chunk = roughness_simage.chunk(3)
roughness = roughness_chunk[1]

二、张量(tensor)转图片

这里的代码接上面的,当我们得到了我们想要保存的tensor,只需要使用这个torchvision.utils里的函数

from torchvision.utils import save_image

save_image(roughness, './check.jpg')

三、结果

转张量前的图片是这样的:
在这里插入图片描述
经读取、处理并保存后得到的图片是这样的(把roughness通道读出并保存了):
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值