神经网络:加载,读取,保存 jpg,png类型的数据

def default_loader(path):
im = Image.open(path).convert(‘RGB’) # 规定读取数据按 真彩色的方式读取
return im

该函数返回的并不是我们想要的多维数组、tensor的类型,而是一个Image 对象,如下所示。

此时 im 是一个 Image 对象 ,它有很多属性,比如它的size是(w,h),通道是RGB

我们需要将 Image对象转换成可以输入网络的数据 (输入网络的数据一般是标准化的数据 均值为0,分布在 [-1,1]之间,根据自己的需求定义)

1. 分步操作

im = np.narray(im) —> 转换成多维数组的形式[H,W,C] ,像素值 [0, 255]
im = np.transpose(im, (1,2,0)) ——》 网络输入数据应该是[C,H,W], 所以需要将多维数组的维度进行转换
im = torch.from_numpy(im) —–> 再将多维数组转换成tensor类型 [C,H,W]
也可先转换成tensor在进行维度转化
im = im.permute(1, 2, 0)
需要根据自己的需求进行归一化操作后,才能放入网络

使用PIL ,plt保存、显示数据,以及vutils保存数据

在显示/保存 数据时,需要注意 加载数据的归一化过程, 是否在保存时候进行了反归一化

1.使用PIL中的 Image.save() Image.show() 保存以及显示图片 (Image为实例对象的名称)

需要将 tensor—》Image对象

transforms.ToPILImage()中有一句
npimg = np.transpose(pic.numpy(), (1, 2, 0))
因此pic只能是3-D Tensor,所以要用image[0]消去batch那一维
# 除T.tensor()所进行的归一化操作之外的 其他归一化操作的反归一化
img = transforms.ToPILImage((image[0]) # 将像素值 [0,1],维度为 [C, H, W] 的 tensor — 》 numpy 对象 [0,255] [H,w,c] —> Image 对象

显示数据

img.show()

保存数据

img.save(path)

2. 使用plt.imshow(),plt.imsave() 保存以及显示图片

像素值应该在浮点数[0, …, 1]的范围内,或者整数[0, … ,255],需要注意超出范围的值将被剪切为这些界限。(即像素值最大不能超过255,最小不能低于0)

plt.imshow()只能接受3-D Tensor,所以也要用image[0]消去batch那一维
img = image[0]
归一化操作的反归一化
img = img.numpy() # FloatTensor转为ndarray [C, H, W]
img = np.transpose(img, (1,2,0)) # 转换维度 [C, H, W] —-> [ H, W, C]
把channel那一维放到最后
显示图片
plt.imshow(img)
plt.show()

保存数据

plt.imsave(im,path)

3. 使用vutils保存数据,可以直接保存tensor, variabale–》jpg 而不需要装换成其他类型的数据

反归一化/将像素值范围转换到正数范围,并且像素值范围必须为【0,1】

vutils.save_image(im.cpu().float(), os.path.join(“./1.jpg”))

T.Totensor 与 ToPILImage

Original: https://blog.csdn.net/m0_45894804/article/details/121523137
Author: LvJu
Title: 神经网络:加载,读取,保存 jpg,png类型的数据

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/763127/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • YOLO-POSE的部署教程来了

    yolo-pose的文件下载 链接:https://pan.baidu.com/s/1vFXTMTVUKQDYpA8AYWGkFQ提取码:本人QQ 3233426794 一、制作数…

    Python 2023年10月27日
    053
  • Python爬虫:和我一起学习scrapy(四)

    ; Downloader Middleware的工作流程 Downloader Midderware即下载中间件,它是处于Scrapy的Request和Response之间的处理模…

    Python 2023年10月6日
    048
  • 随笔记录——pandas(数据联合与合并)

    包含在pandas对象的数据可以通过多种方式联合在一起: pandas.merge根据一个或多个键将行进行连接。对于SQL或其他关系型数据库的用户来说,这种方式比较熟悉,它实现的是…

    Python 2023年8月8日
    037
  • 一文快速上手 Nacos 注册中心+配置中心!

    Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录。而 Nacos 作为 Spring Cloud A…

    Python 2023年10月23日
    046
  • python运算符

    算术运算符: / % ** // 比较运算符: == != > < >= Original: https://www.cnblogs.com/daxiangcai…

    Python 2023年11月3日
    042
  • 第2关:DataFrame数据选择方法

    任务描述 本关任务:通过相关知识介绍的取值方法,得到目标 DataFrame对象,具体要求请查看编程要求。 相关知识 将DataFrame看作字典 DataFrame可以看作一个由…

    Python 2023年8月20日
    087
  • 【PyTorch教程】01-如何创建和初始化Pytoch张量 (2022年最新)

    本期目录 1. 什么是张量 2. 创建张量 * 2.1 直接生成张量 2.2 通过Numpy arrays创建张量 2.3 通过已有的张量创建新的张量 2.4 根据张量维度创建张量…

    Python 2023年8月28日
    048
  • 测试流程规范

    1范围2相关文件3职责3.1测试项目组织结构3.2测试团队3.3职责划分4测试流程及规范4.1测试流程图4.2概念阶段4.3计划阶段4.3.1测试启动与制定测试计划4.3.2概要设…

    Python 2023年6月11日
    057
  • Pandas数据分组聚合

    合并数据表 pandas提供join操作进行数据间的快速合并,默认以行索引对其 def join(self, other, on=None, how="left&quot…

    Python 2023年8月8日
    050
  • django_响应对象

    Django_响应对象 响应对象 响应对象有三种形式:HttpResponse()render()Redirect() (1) HttpResponse() django服务器接收…

    Python 2023年11月1日
    033
  • python 入门专辑资料整理学习

    Python 是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持极简主义。 Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 We…

    Python 2023年6月3日
    065
  • 数据可视化报告

    文章目录 2.1 股票跌幅前10位股票的条形图 2.2 各年龄层中男性和女性参会人数累计柱状图 2.3 近四届全国人大代表的性别比例折线图 2.4 华夫饼图 2.5 矩形树图 im…

    Python 2023年8月8日
    070
  • 强化学习实战:AI玩贪吃蛇(PyTorch)

    文件 ; game.py 游戏用的是 pygame库。 pygame中的坐标轴 ; init 我使用了 collections中的 namedtuple作为坐标。游戏中的 &amp…

    Python 2023年9月18日
    040
  • 数据库原理及MySQL应用 | 多表查询

    在实际应用中,多表查询应用相对较多,根据多表之间的相关列,可以从多个表中检索出所需数据。 在实际应用中,单表查询应用范围相对较少,因为用户需要的数据往往存储在多个不同的表中,这时需…

    Python 2023年9月15日
    042
  • Python计算大文件行数方法及性能比较

    如何使用Python快速高效地统计出大文件的总行数, 下面是一些实现方法和性能的比较。 1.readline读所有行 使用 readlines方法读取所有行: def readli…

    Python 2023年6月3日
    062
  • Python+opencv修图的正确方式

    Original: https://www.cnblogs.com/123456feng/p/16178980.htmlAuthor: 蚂蚁ailingTitle: Python+…

    Python 2023年11月3日
    038
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球