栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch保存图片,读取图片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch保存图片,读取图片

保存图片主要使用save_image,定义如下: torchvision.utils.save_image(tensor, filename, nrow=8, padding=2, normalize=False, range=None, scale_each=False)

注意:normalize=False代表只能将(0,1)的图片存储起来

           normalize=True将(0,255)的图片存储起来

具体介绍见torchvision.utils — Torchvision 0.10.0 documentation

 保存单张图片 保存的图片像素值本身就是在(0-1)内的图片
from torchvision.utils import save_image
a = torch.ones([3,100,100])
save_image(a,'white.png')
#像素值为(255,255,255)为白色
#但是save_image(normalize=False)接受的tensor范围为(0,1),超过1的按1算

 保存的图片像素值本身就是在(-1,1)内的图片

像素值出现在(-1,1)的原因是:

transforms.ToTensor()将图片归一化到(0,1)

 transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])])将图片归一化到(-1,1)

def de_norm(x):
    out = (x + 1) / 2
    return out.clamp(0, 1)
#image是在cuda上的一张图片
#所以image是由batch_size=1的情况下的
#image.size(1,3,256,256)所以要squeeze()一下
image = de_norm(image).squeeze()
save_image(image,'image_name.png')
保存多张图片
a = torch.ones([1, 3, 100, 100])
b = a * 0.6
c = a * 0.3
d = a * 0.1
images = torch.cat([a,b,c,d],dim=3)
print(images.size())        #torch.Size([1, 3, 100, 400])
save_image(images,'grid.png')

 

读取图片将PIL转为tensor
from PIL import Image
totensor = transforms.Compose([transforms.ToTensor()]) #将(0,255)-->(0,1)   
iamge = Image.open('red.png').convert('RGB')
image = totensor(image)
#也可以
#totenor = transforms.Compose([transform.ToTensor(),
#                              transforms.Normalize((0.5, 0.5, 0.5),
#                                        (0.5, 0.5, 0.5))])    #将(0,1)-->(-1,1)
 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号