Python PIL图像未按正确顺序呈现输入的像素值

Python PIL图像未按正确顺序呈现输入的像素值,python,image,numpy,python-imaging-library,render,Python,Image,Numpy,Python Imaging Library,Render,只是为了好玩,我想我应该尝试用像素值构建一个图像,然后用PIL.image进行渲染 但它没有呈现我输入的值 from PIL import Image import numpy as np # custom array arr = np.array( [[50,200,50], [50,200,50], [50,200,50]]) print(arr) img = Image.fromarray(arr, 'L') img.show() [[50 200 50

只是为了好玩,我想我应该尝试用像素值构建一个图像,然后用
PIL.image
进行渲染

但它没有呈现我输入的值

from PIL import Image
import numpy as np

# custom array
arr = np.array(
    [[50,200,50],
     [50,200,50],
     [50,200,50]])

print(arr)

img = Image.fromarray(arr, 'L')
img.show()
[[50 200 50][50 200 50][50 200 50]]

输出的图像如下所示

假设高像素值为白色,低像素值为黑色,我希望图像中间有一条白线


这里出了什么问题?

谢谢@Mark Setchall的评论

在创建数组时添加
type=np.uint8
为我解决了这个问题

arr = np.array(
    [[50,200,50],
     [50,200,50],
     [50,200,50]], type=np.uint8)
现在我得到了我所期望的


这不是我执行代码时得到的结果-这是我所期望的。您的数组是PIL不支持的
int64
类型。尝试在您创建答案的位置添加
dtype=np.uint8
。@MarkSetchell如果您想发布答案,我很乐意接受。写得很好。我知道答案,但没有时间测试和写出来,所以我只留下了一条评论让你开始:-)