gpt4 book ai didi

python - 如何将 RGB PIL 图像转换为具有 3 个 channel 的 numpy 数组?

转载 作者:太空狗 更新时间:2023-10-29 21:30:35 26 4
gpt4 key购买 nike

我正在使用以下代码加载图像

image = PIL.Image.open(file_path)
image = np.array(image)

有效,但数组的大小似乎是 (X, X, 4),即它有 4 层。我想要普通的 RGB 图层。可能吗?

更新

我发现仅删除第 4 个 channel 是不够的。需要以下代码:

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]

为什么?

最佳答案

第四层是支持透明度的图像格式(如 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)

关于python - 如何将 RGB PIL 图像转换为具有 3 个 channel 的 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44955656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com