【发布时间】:2020-11-25 11:11:18
【问题描述】:
因此,我和我的一些同事注意到,当我们使用 matplotlib.pyplot 的 imshow 函数显示二进制数组时,显示图像的边缘似乎发生了变化。有一段时间我以为这只是一个视觉工件,但今天又遇到了麻烦。
顺便说一句,我正在使用 matplotlib:3.2.2 和 numpy:1.19.1
如果我创建一个小的二进制数组并将其绘制出来,您可以在图像中的二进制框中看到一个小的“光环”。这不是很明显,但确实存在:
import matplotlib.pyplot as plt
import numpy as np
img=np.zeros((100,100))
img[25:60,25:60]=50
plt.imshow(img)
如果我更改绘图的 cmap,它会变得更加明显。
my_cmap = plt.cm.get_cmap('prism')
my_cmap.set_under('black')
plt.imshow(img,cmap=my_cmap, vmin=1)
显示的数组应该只有0作为背景和1在框中,但框显示为带有红色/黄色边框的绿色框。
在以前版本的 pyplot 中我没有遇到过这个问题,当我进行对象检测并且我想显示它们并且我的其他明智的二进制对象最终变成这样时,它确实成为了一个问题:
希望你能帮我解决这个问题
【问题讨论】:
标签: python matplotlib