python - 如何使用 pylab 查看 RGB 图像

标签 python image numpy matplotlib

我正在尝试查看 CIFAR-10 格式的 32x32 像素 RGB 图像。这是一个 numpy 数组,其中像素值 (uint8) 排列如下: “前 1024 个字节是红色 channel 值,接下来的 1024 个是绿色 channel 值,最后一个 1024 个字节是蓝色 channel 值。这些值按行优先顺序存储,因此前 32 个字节是第一行的红色 channel 值图片。”

因此,原始图像的形状是:

numpy.shape(image)
(3072L,)

我像这样 reshape 它:

im = numpy.reshape(image, (32,32,3))

然而,当我尝试

imshow(im)

在 iPython 控制台中,我看到原始图像的 3 x 3 block : enter image description here

我希望看到的是一张汽车图片。 我看到了this question在这里,但我不确定他们在那里做什么,以及这是否与我的情况有关。

最佳答案

我知道问题发布已经有一段时间了,但我想更正 Oliver 的回答。如果您使用 Fortran 命令,则图像会反转并逆时针旋转 90 度。

当然,如果您以这种方式格式化所有图像,您仍然可以训练这些数据。但是为了防止你发疯,你应该做以下事情:

im = c.reshape(3,32,32).transpose(1,2,0)

您正在做的是首先使用默认格式 reshape 矩阵,该格式使您在第一个维度中获得 RGB,然后在其他两个维度中获得行和列。然后你正在打乱维度,使原始维度(RGB,索引为 0)中的第一个维度切换到第三个维度,第二个和第三个维度分别向上移动 1。

希望这对您有所帮助。

关于python - 如何使用 pylab 查看 RGB 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28005669/

相关文章:

javascript - 用于检测何时加载图像的 native JavaScript

java - 在 Java 中实现 SIFT

python - 大型二维掩码数组的插值

python - Python 3 中的 for 循环出现问题 : getting the index in string2 of an element from string1

python - 将字符串列表转换为元组

python - 在 python 中同时运行不同的任务?

python - Scipy curve_fit 因多参数拟合而失败。有没有办法改善结果?

python - 灰度级不会与 scipy.misc.imresize() 保持相同

python - Numpy 二进制矩阵到染色体

python - 将 pandas 系列转换为列表系列或将 numpy 数组转换为列表数组