我们说我有一个维度为(10, 48, 48, 1)
的numpy数组。这里10
代表图像数量。图片为48x48
,单个频道1
。由于这些是灰度图像,我希望我的数组来表示。当然这是不可能的,但我想用0
初始化我的其他2个频道。那么如何添加其他二维以使我的数组形状变为(10,48,48,3)
答案 0 :(得分:2)
创建零数组并沿最后一个轴连接 -
use App\Group;
示例运行 -
z = np.zeros(imgs.shape[:-1] + (2,), dtype=imgs.dtype)
imgs_out = np.concatenate((imgs, z), axis=-1)
答案 1 :(得分:2)
您也可以使用np.pad
pad = ((0,0),)*3 + ((0,2),)
imgs = np.pad(imgs, pad, 'constant', constant_values = 0)
imgs.shape
(10, 288, 288, 3)
如果您没有填写零,可以重复这些值,您也可以使用np.broadcast_to
(如果您想要写一份,请务必复制一份)
imgs = np.broadcast_to(imgs, (10, 48, 48, 3)).copy()
答案 2 :(得分:0)
如果使用的是opencv,则可以使用cv2.cvtcolor 例如:
img = np.zeros((255,255), dtype = np.uint8)
print(img.shape)
color_channeled_image = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
print(color_channeled_image.shape)
您的输出:
(255,255)
(255,255,3)