我正在使用以下代码加载图片
image = PIL.Image.open(file_path)
image = np.array(image)
它可以工作,但是数组的大小似乎是(X, X, 4)
,即它有4层。我想要普通的RGB图层。有可能吗?
更新
我发现仅删除第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]
为什么?
答案 0 :(得分:9)
第四层是支持透明度的图像格式的透明度值,如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)