Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python将列表中存储的像素转换为图像?_Python_Python 3.x_Image_List_Image Processing - Fatal编程技术网

如何使用python将列表中存储的像素转换为图像?

如何使用python将列表中存储的像素转换为图像?,python,python-3.x,image,list,image-processing,Python,Python 3.x,Image,List,Image Processing,我在列表中存储了一堆像素,现在我想把它转换成一幅图像。如何将该列表转换为图像?谢谢使用,您可以使用阵列创建图像: pix = [ [[90, 94, 6], [126, 108, 24], [180, 116, 42], [166, 116, 46], [72, 94, 31]], [[101, 96, 14], [190, 165, 84], [202, 134, 63], [170, 115, 50], [40, 50, 0]], [[145, 125, 53], [

我在列表中存储了一堆像素,现在我想把它转换成一幅图像。如何将该列表转换为图像?谢谢

使用,您可以使用阵列创建图像:

pix = [
    [[90, 94, 6], [126, 108, 24], [180, 116, 42], [166, 116, 46], [72, 94, 31]],
    [[101, 96, 14], [190, 165, 84], [202, 134, 63], [170, 115, 50], [40, 50, 0]],
    [[145, 125, 53], [150, 112, 40], [148, 73, 6], [156, 90, 31], [25, 11, 1]],
    [[133, 124, 57], [165, 142, 75], [195, 142, 77], [169, 120, 62], [82, 74, 28]],
    [[73, 105, 40], [56, 77, 10], [138, 135, 67], [97, 95, 34], [45, 69, 21]],
]
现在,您可以查看图像:

from PIL import Image
import numpy as np
img = Image.fromarray(np.array(pix).astype(np.uint8))


好消息是,从现在起,您可以从PIL的所有图像处理工具(调整大小、缩略图、过滤器等)中获益。

以上答案将您的列表转换为
PIL图像。如果您只想查看图像,可以执行以下操作:

img.show()
下面是如何使用。默认情况下,OpenCV使用Numpy数组来显示图像,因此您可以简单地将列表转换为

结果:

import matplotlib.pyplot as plt

plt.imshow(pix)


使用numpy,您可以
numpy.array(pix)
使用cv2,您可以
cv2.imwrite
将阵列作为图像,这不是您将从OP的数据中获得的图像!有蓝色的地方应该是橙色的。PIL使用RGB排序,您已将OP的数据重新排序为BGR排序!见多识广。编辑。谢谢如何将其更改为RGB排序@MarkSetchell@GedePawitradi这取决于你下一步打算做什么,你的问题很模糊。我甚至不知道你的原始数据是什么。。。如果您计划使用PIL或OpenCV/Numpy来处理它,也不会这样做。请单击您的问题下方的
编辑
,并对其进行改进,以便我(和其他人)能够更好地帮助您。谢谢
import numpy as np
import cv2

pix = [
    [[90, 94, 6], [126, 108, 24], [180, 116, 42], [166, 116, 46], [72, 94, 31]],
    [[101, 96, 14], [190, 165, 84], [202, 134, 63], [170, 115, 50], [40, 50, 0]],
    [[145, 125, 53], [150, 112, 40], [148, 73, 6], [156, 90, 31], [25, 11, 1]],
    [[133, 124, 57], [165, 142, 75], [195, 142, 77], [169, 120, 62], [82, 74, 28]],
    [[73, 105, 40], [56, 77, 10], [138, 135, 67], [97, 95, 34], [45, 69, 21]],
]

# Convert to ndarray
img = np.array(pix).astype(np.uint8)

# Save image
cv2.imwrite('img.png', img)

# Display image
cv2.imshow('img', img)
cv2.waitKey()