pytorch中tensor与numpy、cv2、pillow转换
时间: 2024-01-23 13:01:45 浏览: 23
如何实现?
可以使用以下代码实现:
# 将 numpy 数组转换为 PyTorch 张量
import torch
import numpy as np
numpy_array = np.zeros((3, 3))
tensor = torch.from_numpy(numpy_array)
# 将 PyTorch 张量转换为 numpy 数组
numpy_array = tensor.numpy()
# 将 OpenCV 图像转换为 PyTorch 张量
import cv2
image_path = 'test.jpg'
cv2_image = cv2.imread(image_path)
tensor = torch.from_numpy(cv2_image.transpose((2, 0, 1)))
# 将 PyTorch 张量转换为 OpenCV 图像
cv2_image = tensor.numpy().transpose((1, 2, 0))
# 将 Pillow 图像转换为 PyTorch 张量
from PIL import Image
image_path = 'test.jpg'
pil_image = Image.open(image_path)
tensor = torch.from_numpy(np.array(pil_image).transpose((2, 0, 1)))
# 将 PyTorch 张量转换为 Pillow 图像
pil_image = Image.fromarray(tensor.numpy().transpose((1, 2, 0)))