将灰度图像转换回矢量
convert greyscale image back to vector
我有一个名为 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 图像 back 读取为矢量。
目前我找到的解决方案:
第一个:
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
.
的值完全相同
请帮忙?
问题是您保存的可能是 28x28 图像的绘图,而不是图像本身。
为了确定,请预览图像。我敢打赌它是 600x800,而不是 28x28。我还认为它包含许多其他元素,例如轴和填充。
如果您想以可加载的格式存储您的数组,您可以使用 numpy.save()
(和 numpy.load()
来加载它)。
您也可以使用 PIL 将数组保存为图像(例如,使用类似于:http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/)
我有一个名为 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 图像 back 读取为矢量。
目前我找到的解决方案:
第一个:
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
.
请帮忙?
问题是您保存的可能是 28x28 图像的绘图,而不是图像本身。
为了确定,请预览图像。我敢打赌它是 600x800,而不是 28x28。我还认为它包含许多其他元素,例如轴和填充。
如果您想以可加载的格式存储您的数组,您可以使用 numpy.save()
(和 numpy.load()
来加载它)。
您也可以使用 PIL 将数组保存为图像(例如,使用类似于:http://code.activestate.com/recipes/577591-conversion-of-pil-image-and-numpy-array/)