首页 > 解决方案 > 了解python图像数组

问题描述

我可以像这样声明一个 3D 数组:

一个 3D 数组,形状-(2, 2, 2)

3D_array = np.array([[[0, 1],[2, 3]], [[4, 5],[6, 7]]])

因此,如果我有图像10*10(pixels) 3 rgb通道,则 image.shape 将是(3x10x10). 但我一直看到 image.shape 等于(10x10x3),我不明白为什么?

谢谢你的关注。

标签: pythonarraysimage

解决方案


通常在 numpy 和 matplotlib 中,RGB 通道位于最后一个轴上。这只是一个约定,因此您对此无能为力。如果您使用使用其他约定(通道优先)的程序,您可以使用以下方式转换图像:

channels_first_im = np.moveaxis(channels_last_im, 0, 1)

另一种方式:

channels_last_im = np.moveaxis(channels_first_im, 0, -1)

推荐阅读