首页 > 解决方案 > Python:matplotlib imshow() 中的 cmap 参数生成不同的二进制图像

问题描述

通过设置 cmap="gray" 可以正确显示二进制图像。

import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
square = np.array([[0, 0, 0, 0, 0],
                   [0, 1, 1, 1, 0],
                   [0, 1, 1, 1, 0],
                   [0, 1, 1, 1, 0],
                   [0, 0, 0, 0, 0]], dtype=np.uint8)
fig = plt.figure(figsize=(3,3))
plt.imshow(square, cmap="gray")
plt.show()

但是,当我们将其更改为“二进制”时,imshow() 会生成反向图像!

plt.imshow(square, cmap="binary")

这种奇怪行为的原因是什么?

标签: pythonmatplotlibimage-processing

解决方案


这是matplotlib 文档的 Colormap 参考的屏幕截图:

在此处输入图像描述

可以看出binary从白色开始到黑色,而gray从黑色开始到白色。


推荐阅读