项目场景

我这里有一张名为 camera.jpg 的灰度图像:

在这里插入图片描述
使用 matplotlib 库读取并显示:

import matplotlib.pyplot as plt
plt.imshow(plt.imread('camera.jpg'))
plt.show()

显示结果如下:

在这里插入图片描述

问题描述

如上图,显示的是绿色的图片,而我这里想让它显示原图的那种黑白色调,怎么实现呢?

原因分析

根据官方文档可知:

在这里插入图片描述

matplotlib.pyplot.imshow 有一个 cmap 参数,用该参数来控制图像显示色彩。对于 RGB 或 RGBA 图像忽略该参数,即直接显示原图。而对于单通道的灰度图像,默认色彩是 viridis (绿色)。因此,设置 cmap 参数的值即可正确显示灰度图像,可接受的输入类型为字符串或者 Corlormap 对象。

解决方案

import matplotlib.pyplot as plt
plt.imshow(plt.imread('camera.jpg'), cmap='gray')
plt.show()

或者

import matplotlib.pyplot as plt
plt.imshow(plt.imread('camera.jpg'), plt.cm.gray)
plt.show()
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐