Python:matplotlib imshow()中的cmap参数生成不同的二进制图像

时间:2019-07-19 11:45:36

标签: python matplotlib image-processing

通过设置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")

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

2 个答案:

答案 0 :(得分:1)

以下是Colormap reference of the matplotlib documentation的屏幕截图:

enter image description here

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

答案 1 :(得分:1)

您可以检查下面的matplotlib色彩图,其中二进制是灰色的倒数,这就是为什么要获得高于结果的原因。

enter image description here

here中了解更多信息。