gpt4 book ai didi

matplotlib - imshow 使用 astype(float) 后反转颜色

转载 作者:行者123 更新时间:2023-12-03 04:32:03 29 4
gpt4 key购买 nike

我正在使用 matplotlib imshow 可视化来自 cifar-10 的数据。读取 cifar10 数据后,我注意到使用 .astype(float) 后,从 imshow 渲染的图像有所不同。

例如,

没有.astype(float)

enter image description here

这是我在 .astype(float) 中看到的内容

enter image description here

为什么图像渲染时颜色看起来是颠倒的?

这是我正在使用的代码:

dir = 'resources/datasets/cifar-10-batches-py'
import cPickle
fo = open(dir + '/data_batch_1', 'rb')
dict = cPickle.load(fo)
fo.close()
X=dict['data'].reshape((10000, 3, 32, 32)).transpose(0, 2, 3, 1).astype(float)
Y=dict['labels']
plt.imshow(X[2,])
plt.show()

最佳答案

有点晚了,但对于寻求帮助并找到这篇文章的人来说:

post 给出了 matplotlib 如何决定颜色图的一个很好的解释。 .

我刚刚遇到了同样的问题,并在这篇文章中找到了解决方案。看来 matplotlib 假定 float 类型的 3D 图像在 [0,1] 范围内,并使用 1 的模运算来限制 2.7 -> 0.7 等值。

试试这个:

X=dict['data'].reshape((10000, 3, 32, 32)).transpose(0, 2, 3,1)

X = X.astype(float) / 255
plt.imshow(X[2,])

现在 matplotlib 应该直接使用提供的值,而不是使用内部模魔法。

关于matplotlib - imshow 使用 astype(float) 后反转颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35420749/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com