将灰度图像转换回矢量

时间:2016-12-13 10:23:25

标签: python image matplotlib grayscale

我有一个名为w的列表(大小:784),我将其输出到png灰度图像:

import matplotlib.pyplot as plt    
tmp = 1/(1+np.exp(-10*w/w.max()))
plt.imshow(tmp.reshape(28,28),cmap="gray")
plt.draw()
plt.savefig("final_weight_vector")

现在我想将png图像返回作为矢量。

到目前为止我找到的解决方案:

首先:

import matplotlib.image as mpimg
img=mpimg.imread('final_weight_vector.png')

img似乎不是灰度,因为它的尺寸可以是(600,800,4)。

第二

将文件读取为RGB并转换为灰度:

im = Image.open('final_weight_vector.png').convert('LA')

但是,我找不到如何迭代im,所以我不知道里面是什么。此外,我不确定im的输出是否与原始w具有完全相同的值。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

问题是你保存的内容可能是28x28图像的图,而不是图像本身。

可以肯定的是,请预览图像。我打赌它是600x800,而不是28x28。我还假设它包含许多其他元素,如轴和填充。

如果您想以可加载的格式存储数组,可以使用numpy.save()(和numpy.load()加载它)。

您也可以使用PIL将数组保存为图像(例如使用类似于http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/的内容)