1.PIL&&Tensor &&ndarray
PIL:PIL库的图像数据类型
Tensor:Pytorch的数据类型,这里也可以是图像数据类型
ndarry:numpy的数据类型
from torchvision.transforms import transforms
from PIL import Image
import cv2
# 显示图片
# Image.show() # PIL RGB
# cv2.imshow() # numpy.ndarray BGR
# Tensor需要转换为PIL或numpy.ndarray才可已显示
path = 'Face.jpg'
img_pil = Image.open(path) # PIL RGB
img_cv2 = cv2.imread(path) # numpy.ndarray BGR
"""PIL or numpy.ndarray to Tensor"""
img_pil_tensor = transforms.ToTensor()(img_pil) # Tensor RGB
img_cv2_tensor = transforms.ToTensor()(img_cv2) # Tensor BGR
"""Tensor or numpy.ndarray to PIL"""
img_tensor_pil = transforms.ToPILImage()(img_pil_tensor) # PIL RGB
img_cv2_pil = transforms.ToPILImage()(img_cv2) # PIL BGR
"""PIL or Tensor to numpy.ndarray"""
img_pilTensor_numpy = img_pil_tensor.numpy() # numpy.ndarray RGB
img_cv2Tensor_numpy = img_cv2_tensor.numpy() # numpy.ndarray BGR
"""RGB to BGR"""
"""Tensor"""
BGR_index = [2, 1, 0]
BGR = RGB[BGR_index]
"""PIL"""
R, G, B = RGB.split()
BGR = Image.merge('RGB', (B, G, R))
"""numpy.ndarray"""
BGR = cv2.cvtColor(RGB, cv2.COLOR_RGB2BGR) # cv2
BGR = RGB[:, :, ::-1] # numpy.ndarray
"""BGR to RGB"""
"""Tensor"""
RGB_index = [2, 1, 0]
RGB = BGR[RGB_index]
"""numpy.ndaaray"""
RGB = cv2.cvtColor(BGR, cv2.COLOR_BGR2RGB) # cv2
RGB = BGR[:, :, ::-1] # numpy.ndarray
"""PIL"""
B, G, R = BGR.split()
RGB = Image.merge('RGB', (R, G, B))