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

时间:2017-04-23 00:34:53

标签: python image numpy python-imaging-library pillow

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

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

正如您所看到的,它只是一个10像素乘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()只是创建我的图像,我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

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