0

我正在使用 matplotlib 生成一些复合图形(来自原始数据和图像)。我试图让脚本获取几种文件格式的图像文件,然后通过以下方式绘制:

Nxy = mpimg.imread(Nxy_filename)
imgplot = ax1.imshow(Nxy)

其中 ax1 是我希望图像显示在其中的子图。这适用于 PNG 和 JPEG 图像,但对于 .bmp (同一图像)matplotlib 似乎将其变为蓝色,即

在此处输入图像描述

变成:

在此处输入图像描述

在我的复合图中。另一方面,png 和 jpg 文件看起来与原始文件完全相同。知道为什么会发生这种情况吗?我不愿意盲目地更改代码中的颜色图,因为其他图像格式按预期显示。

4

1 回答 1

2

听起来您的 PNG 和 JPEG 图像是 RGB 图像,碰巧是灰色的,而 BMP 图像是灰度的。检查 Nxy 的形状。我的猜测是 BMP 是二维的,而 PNG 和 JPEG 图像数组是三维的。

于 2013-08-05T18:02:58.083 回答