2017-08-29 22 views
1

假設我有一個尺寸爲(10, 48, 48, 1)的numpy陣列。這裏10代表圖像的數量。圖像是48x48與單個頻道1。由於這些是灰度圖像,我希望我的數組來表示。當然這是不可能的,但我想用0初始化我的其他2個頻道。所以,我怎麼可以添加其他二維讓我的數組形狀變得(10,48,48,3)如何在圖像數組中添加通道?

回答

1

你也可以使用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() 
1

創建零陣列和沿最後軸串聯 -

z = np.zeros(imgs.shape[:-1] + (2,), dtype=imgs.dtype) 
imgs_out = np.concatenate((imgs, z), axis=-1) 

採樣運行 -

In [157]: imgs = np.random.randint(0,255,(10,48,48,1)) # input 

In [158]: z = np.zeros(imgs.shape[:-1] + (2,), dtype=imgs.dtype) 

In [159]: np.concatenate((imgs, z), axis=-1).shape 
Out[159]: (10, 48, 48, 3)