Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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_Image_Numpy_Python Imaging Library - Fatal编程技术网

在python中将二维数组转换为并置图像

在python中将二维数组转换为并置图像,python,image,numpy,python-imaging-library,Python,Image,Numpy,Python Imaging Library,我有这样的2d INT列表: list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]] img = Image.fromarray(myarr, "I") img.save("my.png") 接下来我将把它转换为numpy数组: myarr = np.asarray(list1) 接下来,我将使用PIL将其转换为图像,如下所示: list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]] img =

我有这样的2d INT列表:

list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]]
img = Image.fromarray(myarr, "I")
img.save("my.png")
接下来我将把它转换为numpy数组:

myarr = np.asarray(list1)
接下来,我将使用PIL将其转换为图像,如下所示:

list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]]
img = Image.fromarray(myarr, "I")
img.save("my.png")

问题是我不想要灰度图像。我不知道如何将此转换为collored图像。我必须使用eny映射函数或其他东西

实现这一点的方法是使用numpy

import numpy as np
list1 = [[1, 30, 50], [21, 45, 9], [97, 321, 100]]
list1 = np.array(list1).reshape(-1, 3)
现在
list1
的形状是nx3,其中3维是RGB。如果您知道最终图像的大小,您可以这样做

np.array(list1).reshape(N, M, 3)

它将根据您的需要将您的阵列重新塑造为RGB。一旦你有了numpy数组,你就有了图像形状的数组,并可以将其保存到PNG,等等。

它是什么类型的图像?如果您想要一个漂亮的数值颜色映射,在
matplotlib
中有一些简单的东西。如果它是一张照片,那么它将不仅仅是一个编程问题。彩色图像具有形状
(N,M,3)
。您的列表具有形状
(N,M)
,因此不表示RGB图像。没有足够的信息。您可以像
np.stack((np.array(list1),)*3,-1)那样堆叠灰度图像,以获得RGB形状,但它仍然是灰色的。