我将一个numpy数组保存到图像,如下所示:
plt.imshow(xNext[0,:,:,0]) #xNext has shape (1,64,25,1)
print(xNext[0,:,:,0].shape) #outputs (64,25)
plt.savefig(os.path.join(root,filename)+'.png')
np.save(os.path.join(root,filename)+'.npy',xNext[0,:,:,0])
如何从.png保存的图像中获取相同的numpy数组?如果我另存为.jpg图片,也可以告诉我吗?
我尝试了以下操作,并与3D数组(v1)一起使用,其中生成的图像接近原始numpy数组生成的图像(原始)。
image = Image.open(imageFilename) #brings in as 3D array
box = (315,60,500,540)
image = image.crop(box)
image = image.resize((25,64)) #to correct to desired shape
arr = np.asarray(image)
plt.imshow(arr)
plt.savefig('v1.png')
plt.close()
但是,当我将3D数组转换为2D数组时,生成的图像是不同的(v1b和v1c)。
arr2 = arr[:,:,0]
plt.imshow(arr2)
plt.savefig('v1b.png')
plt.close()
arr3 = np.dot(arr[...,:3],[0.299,0.587,0.11])
plt.imshow(arr3)
plt.savefig('v1c.png')
plt.close()
如何将3D正确转换为2D?谢谢你的帮助。
原始版本v1(从3D阵列保存)
v1b,v1c(从2D数组保存)
原始尺寸(具有原始尺寸)
慕雪6442864
相关分类