作者:mobiledu2502912637 | 来源:互联网 | 2023-01-30 12:38
我正在使用以下代码加载图像
image = PIL.Image.open(file_path)
image = np.array(image)
它工作,但阵列的大小似乎是(X, X, 4)
,即它有4层.我想要普通的RGB图层.可能吗?
UPDATE
我发现仅删除第4个通道是不合适的.需要以下代码:
image = PIL.Image.open(file_path)
image.thumbnail(resample_size)
image = image.convert("RGB")
image = np.asarray(image, dtype=np.float32) / 255
image = image[:, :, :3]
为什么?
1> keredson..:
第四层是支持透明度的图像格式的透明度值,如PNG.如果删除第4个值,它将是没有透明度的正确RGB图像.
编辑:
例:
>>> import PIL.Image
>>> image = PIL.Image.open('../test.png')
>>> import numpy as np
>>> image = np.array(image)
>>> image.shape
(381, 538, 4)
>>> image[...,:3].shape
(381, 538, 3)