pytorch中使用vutils对多张图像进行拼接 (import torchvision.utils as vutils)
PyTorch 进行 图像 as 拼接 import utils 使用
2023-09-11 14:19:19 时间
1.png
2.png
在pytorch中使用torchvision的vutils函数实现对多张图片的拼接。具体操作就是将上面的两张图片,1.png和2.png的多张图片进行拼接形成一张图片,拼接后的效果如下图。
给出具体代码:
import matplotlib.pyplot as plt from PIL import Image import numpy as np import torch import torchvision.utils as vutils im1=Image.open("1.png").convert("RGB") im1 = im1.resize((1000, 1000)).rotate(-90) im2=Image.open("2.png").convert("RGB") im2 = im2.resize((1000, 1000)).rotate(-90) # 1000, 1000, 3 => 3, 1000, 1000 images = [np.moveaxis(np.array(im1), 2, 0), np.moveaxis(np.array(im2), 2, 0)]*8 images_tensor = vutils.make_grid(torch.tensor(images)/255.0, nrow=4, padding=0, normalize=True) print(images_tensor.shape) # 3, 1000, 1000 => 1000, 1000, 3 plt.imshow(images_tensor.numpy().transpose((1,2,0))) plt.show() vutils.save_image(images_tensor, "3.png") vutils.save_image(images_tensor, "3_back.png", nrow=2, padding=0, normalize=True) vutils.save_image(torch.tensor(images)/255.0, "4.png", nrow=8, padding=0, normalize=True)
=============================================
需要注意的地方:
- 1. 使用PIL读入的图片要转为RGB模式,然后要将图片对象转为numpy数组形式,在上面例子中转为数组后的单张图片维度为(1000,1000,3)。
- 2. 使用vutils.make_grid函数对图片进行拼接时,每张图片的数据类型都为torch.tensor,并且单张图片的格式应为(channel数,长,宽),上面例子中则是(3,1000,1000)。这样将16张图片拼接为每行4张图片的大图后,大图的维度为(3,4000,4000)。
- vutils.make_grid函数和vutils.save_image函数接受的pytorch.tensor的类型均为float,如果不能保证数据大小在0和1之间则需要设置正则项normalize=True 。
-------------------------------------------------------------
相关文章
- linux:安装pytorch(python3.6.8 / pytorch 1.10.1+cu102)
- [Intro to Deep Learning with PyTorch -- L2 -- N24] Logistic Regression Algorithm
- linux:安装pytorch(python3.6.8 / pytorch 1.10.1+cu102)
- 【PyTorch】教程:torch.nn.ReLU
- PT之Transformer:基于PyTorch框架利用Transformer算法针对IMDB数据集实现情感分类的应用案例代码解析
- pytorch中各个优化函数的对比
- 中文语音识别pytorch
- 语义分割常用loss介绍——及pytorch实现
- 从零教你使用MindStudio进行Pytorch离线推理全流程
- 推理实践丨如何使用MindStudio进行Pytorch模型离线推理
- PyTorch存储和加载模型并查看参数,load_state_dict(),state_dict() + 使用多张GPU进行训练以及推理调用模型
- 【NLP】使用 PyTorch 通过 Hugging Face 使用 BERT 和 Transformers 进行情感分析
- 【DL with Pytorch】第 1 章 :深度学习与PyTorch简介
- pytorch矩阵乘法总结
- 【Pytorch with fastai】第 11 章 :使用 fastai 的中级 API 进行数据处理
- pytorch 39 yolov5_obb的onnx部署及其优化
- Chapter2 机器学习回顾与Pytorch的基本操作
- 深度学习基础:4.Pytorch搭建基础网络模型
- PyTorch使用技巧1:F.dropout加self.training、F.log_softmax