Dim*_*ims 10 python rgb numpy python-imaging-library
我正在使用以下代码加载图像
image = PIL.Image.open(file_path)
image = np.array(image)
Run Code Online (Sandbox Code Playgroud)
它工作,但阵列的大小似乎是(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]
Run Code Online (Sandbox Code Playgroud)
为什么?
ker*_*son 14
第四层是支持透明度的图像格式的透明度值,如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)
Run Code Online (Sandbox Code Playgroud)