枕头:从 nxnx3 numpy 矩阵创建 RGB 图像的奇怪输出

Pillow: Strange output creating RGB image from nxnx3 numpy matrix

我正在尝试将 nxnx3 矩阵转换为 RGB 图像,其中矩阵中的每个 space 都是 [R,G,B]。我认为这很容易,但我遇到了一个奇怪的错误。

我有这张图片:http://www.cs.brandeis.edu//~arya/test2.bmp

它只是一个 10 像素 x 10 像素位图,上面有一条红色对角线,如您所见。

这是我的 python 代码:

import numpy as np
from PIL import Image
imm = Image.open("test2.bmp")
t = np.int32(imm)
print(t.shape) # (10,10,3)
new = Image.fromarray(t, mode="RGB")
new.save("test_output.bmp")

然后我得到这张图片:http://www.cs.brandeis.edu//~arya/test_out.bmp - 与原始输出非常明显不同。我希望 Image.fromarray() 能够按原样创建我的图像,我是否遗漏了什么?

谢谢!

Pillow 文档说 "RGB" mode 表示 3x8 位整数,但您的数组是由 32 位整数组成的。你能试试 np.int8(imm) 吗?