将数组转换为图像

时间:2015-11-11 19:50:47

标签: python opencv

我有一个名为C的2Darray,其索引中包含像素。如何查看图像 由该像素值形成的图像可以由数组表示。不,我正在尝试相反的过程,我只想看到灰度图像,因为名为C的数组每个索引只有一个值。在python中进行编程

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

在此行中收到错误

ime = Image.fromarray(c)
ime.save("your_file.jpeg")

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

2 个答案:

答案 0 :(得分:3)

代码更好更多;谢谢。将来,请记住将代码缩减到最低级别并将其发布在原始问题中。外部链接几乎没有受到太多关注。

你的问题是 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")

答案 1 :(得分:0)

您只需使用c。即可将数据框转换为数组

ime = Image.fromarray(c.values)
ime.save("your_file.jpeg")