我正在使用matplotlib生成一些复合图形(来自原始数据和图像)。我正在尝试让脚本获取几种文件格式的图像文件,然后通过以下方式绘制:
Nxy = mpimg.imread(Nxy_filename)
imgplot = ax1.imshow(Nxy)
其中ax1是我希望图像显示的子图。对于PNG和JPEG图像都可以正常工作,但对于.bmp(同一图像),matplotlib似乎将其变为蓝色,即
变成:
在我的复合图中。另一方面,png和jpg文件看起来与原始文件完全相同。知道为什么会这样吗?我不愿意盲目地改变代码中的颜色图,因为其他图像格式按预期显示。
答案 0 :(得分:2)
听起来你的PNG和JPEG图像是碰巧是灰色的RGB图像,而BMP图像是灰度的。检查Nxy的形状。我的猜测是它是BMP的二维,而PNG和JPEG图像阵列有三个维度。