在python中将二维数组转换为并置图像
我有这样的2d INT列表:在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 =
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形状,但它仍然是灰色的。