Pytorch 三通道转单通道 彩色图转灰度图 || [w, h, c]转为[c, w, h]

三通道转单通道 彩色图转灰度图

img=Image.open(r'C:\Users\liu\Desktop\imgs\2.jpg')
tran=torchvision.transforms.Compose([
    torchvision.transforms.Grayscale(num_output_channels=1),
    torchvision.transforms.ToTensor(),
    torchvision.transforms.Resize(size=(28,28))
])
img_tonser=tran(img)
print(img_tonser.shape)

彩色图(三通道)转指定R,G,B通道

def change_image_channels(image):
    # 3通道转单通道
    if image.mode == 'RGB':
        r, g, b = image.split()
    return r,g,b

PNG 四通道转三通道

img=Image.open(r'C:\Users\liu\Desktop\imgs\2.jpg')
img=img.convert('RGB')
# tran=torchvision.transforms.Compose([
#     torchvision.transforms.Grayscale(num_output_channels=1),
#     torchvision.transforms.ToTensor(),
#     torchvision.transforms.Resize(size=(28,28))
# ])

如何从[w, h, c]转为[c, w, h]

可以借助numpy的transpose()函数来实现这个转换。是的只要像下面简简单单的一句话即可实现。
import numpy as np
image_chw = np.transpose(image_hwc, (2,0,1))

你可能感兴趣的:(Pytorch 三通道转单通道 彩色图转灰度图 || [w, h, c]转为[c, w, h])