我正在使用以下方法保存图片:
import matplotlib.pyplot as plt
plt.imsave(img_path,img_arr,cmap = 'gray') #shape (512,512)
...
img = plt.imread(img_path)
img.shape返回的是(512,512,4),但我期望它只是(512,512)。我以为所有通道都是一样的,所以我可以选择其中一个,但是无论我选择哪个索引,np.allclose(img[:,:,0],img_arr)
都会返回false。通过打印图像,它们确实是我要比较的正确图像,它们看起来几乎完全相同(肉眼观察),但显然不完全相同。
我还尝试使用cv2保存这些图像,但由于某种原因似乎只保存了黑色方块。使用cv2.imread(img_path,0)
加载它们确实会返回一个(512,512)的数组,但是似乎丢失了一些信息,因为再次使用np.allclose()
告诉我它们是不同的。
我想知道是否有一种好的方法来保存灰度图像?我尝试的每种方法似乎都将其转换为RBG或RGBA,这真的很烦人。此外,我希望保留图像的dtype(int16),因为缩小图像会丢失重要信息。
提前感谢您的帮助。