首页 > 解决方案 > PIL 图像未按正确顺序呈现输入的像素值

问题描述

只是为了好玩,我想我会尝试用像素值构建一个图像,然后用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]]

输出的图像如下。

在此处输入图像描述

鉴于高像素值是白色而低像素值是暗的,我预计图像中间会出现一条白线。

这里出了什么问题?

标签: pythonimagenumpypython-imaging-libraryrender

解决方案


感谢@Mark Setchall 的评论。

type=np.uint8在创建数组时添加为我解决了它。

arr = np.array(
    [[50,200,50],
     [50,200,50],
     [50,200,50]], type=np.uint8)

现在我得到了我的预期。

在此处输入图像描述


推荐阅读