我有一个名为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
具有完全相同的值。
请帮忙吗?
答案 0 :(得分:1)
问题是你保存的内容可能是28x28图像的图,而不是图像本身。
可以肯定的是,请预览图像。我打赌它是600x800,而不是28x28。我还假设它包含许多其他元素,如轴和填充。
如果您想以可加载的格式存储数组,可以使用numpy.save()
(和numpy.load()
加载它)。
您也可以使用PIL将数组保存为图像(例如使用类似于http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/的内容)