Ian*_*olo 6 python image matplotlib
我正在使用
import matplotlib.pyplot as plt
plt.imsave(img_path,img_arr,cmap = 'gray') #shape (512,512)
...
img = plt.imread(img_path)
Run Code Online (Sandbox Code Playgroud)
并且 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),因为下采样会丢失重要信息。
提前致谢。