import numpy as np
import torchvision
from PIL import Image
import torchvision.transforms as transforms
img_path = "/home/rui/PycharmProjects/pythonProject/exercise/imgs/airplane.png"
# img = Image.open(img_path)
#有些照片可能为4通道,使用.convert('RGB')可以转化为3通道
img = Image.open(img_path).convert('RGB')
print(img)
#转为totensor格式,totensor可以在gpu上加速,tensor数据格式是torch(C,H,W)
transf = transforms.ToTensor()
img_tensor = transf(img)
img_tensor1 = img_tensor.transpose(2,1).flip(1)
print(img_tensor)
print(img_tensor.shape) #三者等价 print(np.shape(img_tensor)) , print(img_tensor.size())
torchvision.utils.save_image(img_tensor1, "out_cv.jpg") #将tensor保存为图片格式
#转换为array格式, numpy数组格式为(H,W,C)
img_array = np.array(img)
print(img_array)
print(np.shape(img_array)) #两者等价 print(np.shape(img_array))
#转为tensor格式,tensor可以在gpu上加速,tensor数据格式是torch(C,H,W) #转换为array格式, numpy数组格式为(H,W,C)
#将tensor保存为图片格式
torchvision.utils.save_image(img_tensor1, "out_cv.jpg")
Tensor转NumPy
使用numpy()将Tensor转换成NumPy数组:
import torch a = torch.ones(5) b = a.numpy() print(a, b) #输出 tensor([1., 1., 1., 1., 1.]) [1. 1. 1. 1. 1.]
NumPy数组转Tensor
使用from_numpy()将NumPy数组转换成Tensor:
import torch import numpy as np a = np.ones(5) b = torch.from_numpy(a) print(a, b) #输出 [1. 1. 1. 1. 1.] tensor([1., 1., 1., 1., 1.], dtype=torch.float64)
我们可以通过shape或者size()来获取Tensor的形状:
print(x.size()) print(x.shape)我们可以通过shape来获取Tensor的形状:
print(x.shape)



