【发布时间】:2021-05-11 05:54:08
【问题描述】:
我有 12 个波段的数组:
array
(53, 44, 12)
我想从这个数组创建 RGB 图像。 为了做到这一点,我知道我需要从阵列中切出 3,2 和 1 通道并从中创建图像。为了带走这些乐队,我这样做了:
red=array[:,:,3]
green=array[:,:,2]
blue=array[:,:,1]
#stack together:
rgb=np.stack((red,green,blue))
问题是,每当我想将图像显示为 rgb 时,都会出现错误:
fig, ax = plt.subplots(figsize=(20,10))
ax.matshow(rgb)
TypeError:图像数据的形状(3、44、12)无效
我解决它的第一个想法是改变轴的顺序,因为我认为它需要 3 作为行数,我使用了 np.moveaxis:
rgb=np.moveaxis(rgb, 0, -1).shape
rgb.shape
>>>
(44,12,3)
但是当我再次尝试使用 matshow 时,我又遇到了错误:
TypeError: Invalid shape (3,) for image data
我不确定我的错误在哪里,就像过去使用 matshow 一样有效。
我的最终目标是能够将三个波段绘制为 rgb 图像。
【问题讨论】:
标签: python image numpy matplotlib rgb