RGB多為使用PIL讀入圖片,BGR多為cv2讀入的圖片
1、cv2的imshow讀取方式同imread的色彩通道順序,默認BGR
2、PIL讀入方式為RGB,plt顯示圖片默認為RGB
3、PIL、cv(numpy)、tensor之間的轉換:
PIL_numpy:
img_pIL=Image.open('image.png')
img_pIL=np.asarray(img_pIL)
cv2.imshow('cv2Image2BGR',cv2.cvtColor(img_pIL,cv2.COLOR_RGB2BGR))
PIL_tensor:
from torchvision import transforms
transform=transforms.Compose([transforms.ToTensor()])
transform(img_pIL)
cv(numpy)_PIL:
image = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
image.show()
cv(numpy)_Tensor:
image=cv2.imread('image.png')
from torchvision import transforms
transform=transforms.Compose([transforms.ToTensor()])
transform(image)
或者:
torch.from_numpy(image)
Tensor_PIL:
unloader = transforms.ToPILImage()
img_PilT =unloader(img_Tensor)
Tensor_numpy:
tensor.numpy()/tensor.cpu().numpy()
注意:
1、為顯示正常色彩的圖片:plt、Image.show接收的是RGB的讀入方式;cv2.imshow接收的是BGR的讀入方式。注意轉換
2、在自己從頭開始訓練時無所謂讀入的是RGB還是BGR,但是如果需要使用別人的預訓練模型,需要注意人家在訓練時候使用的圖片格式是RGB還是BGR,老的模型一般是BGR
的占比多