将数组转换为图像

Rag*_*san 7 python opencv

我有一个名为C在其索引中包含像素的二维数组。如何查看该像素值构成的图像,图像可以用数组来表示。没有尝试相反的过程,我只想看到灰度图像,因为名为的数组C每个索引只有一个值。使用 python 进行编程

这是我的代码 http://pastebin.com/qmnKrtzu

在这一行中出现错误

ime = Image.fromarray(c)
ime.save("your_file.jpeg")
Run Code Online (Sandbox Code Playgroud)

ime = Image.fromarray(c_array) arr = obj.__array_interface__ AttributeError: 'list' object has no attribute '__array_interface__'

Pru*_*une 5

有了代码就好多了;谢谢。以后,请记住将代码削减到最低水平并将其发布到原始问题中。外部链接几乎没有得到那么多的关注。

您的问题是Image.fromarray需要一个数组作为输入;你给了它一个清单。您最初确实将列表c转换为数组,但没有保留该数组。我认为您在pastebin代码的第18行和第41行需要这个,我在其中添加了对c_array的引用:

c = [[0]*k*im.width for i in range(k*im.height)]
c_array = np.asarray(c)
...
ime = Image.fromarray(c_array)
ime.save("your_file.jpeg")
Run Code Online (Sandbox Code Playgroud)