1

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

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

4

2 回答 2

3

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

在此处输入图像描述

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

于 2019-07-19T11:59:47.237 回答
1

您可以检查下面的matplotlib颜色图,其中二进制与灰色相反,这就是您获得高于结果的原因。

在此处输入图像描述

从这里阅读更多关于它的信息。

于 2019-07-19T12:02:03.093 回答