首页 > 解决方案 > 将 RGB 数组转换为 PIL 图像

问题描述

在我的代码中,我正在创建一个 RGB 数组 (256 * 256 * 3),我需要显示它。我无法从 RGB 数组创建 PIL 图像。我写了这段代码来解释:

import numpy as np
from PIL import Image

image = Image.open('img_test.png')
image.thumbnail((256, 256))
image = image.convert("RGB")
image = np.asarray(image, dtype=np.float32) / 255

PIL.Image.fromarray(image, "RGB").show()

我正在恢复这张图片:

在此处输入图像描述

如果我正在使用

import matplotlib.pyplot as plt
plt.imshow(image)
plt.show()

然后我得到这张图片: 在此处输入图像描述

我在这条线上做错了什么?

PIL.Image.fromarray(image, "RGB").show()

标签: python-3.xpython-imaging-library

解决方案


您期望 PIL 处理 32 位浮点 RGB 图像,它在这里看不到。

它可以处理,除其他外:

  • RGB 作为三个 8 位整数值 (RGB888),或
  • 灰度浮点数32。

推荐阅读