向numpy数组新增维度填充数据,实现灰度图像转RGB格式
Numpy灰度数组转三通道RGB数组的实现方法
你已经完成了新增通道维度的步骤,接下来只需要在新增的轴(索引为1的维度)上重复3次数据即可,有多种实现方式:
- 最简写法:直接用
np.repeat对已生成的4维数组做重复操作
代码示例:
你也可以省去单独调用import numpy as np # 直接在轴1重复3次,输出形状就是(55, 3, 10, 10) array_rgb = np.repeat(array_4d, 3, axis=1)np.expand_dims的步骤,一步完成维度新增+重复:array_rgb = np.repeat(array_3d[:, np.newaxis, :, :], 3, axis=1) - 广播赋值写法:如果你需要对不同通道做额外修改,可以先初始化目标数组再逐通道赋值
代码示例:# 初始化和目标尺寸一致的空数组,保持和原数组相同的数据类型 array_rgb = np.zeros((55, 3, 10, 10), dtype=array_3d.dtype) # 三个通道分别赋值为原灰度图数据 array_rgb[:, 0, :, :] = array_3d array_rgb[:, 1, :, :] = array_3d array_rgb[:, 2, :, :] = array_3d
注意:如果你后续需要的是通道在后的HWC格式(形状为55×10×10×3),只需要把上述代码里的
axis参数改为-1即可。
内容的提问来源于stack exchange,提问作者ahotpotato
相关产品推荐
相关产品推荐

