2017-09-24 84 views
0

我正在處理張量流,並且我有一些形狀爲(3, 512, 660, 4)的numpy陣列的汽車圖像。Numpy從(3,512,660,4)改變形狀爲(3,2048,660,1)

在此,3對應於汽車索引,512*660是圖像尺寸,4對應於汽車的不同側面。

也就是說,(1, 512, 660, 1)對應於Car1-正面圖像,(1, 512, 660, 2)對應於Car1-左側圖像等。

現在,我想將汽車的所有圖像連接成一個圖像(2048*660)。也就是說,我想重塑(3, 512, 660, 4)(3, 2048, 660, 1)

有人可以幫助我嗎?

我試過重塑功能,但它實際上重疊圖像,而不是連接它。

回答

2

我們可以對軸進行排列,將最後一個軸作爲新的第三根軸進行排列和重塑。置換軸可以用np.swapaxesnp.transposenp.rollaxis進行處理,給我們三種解決方案,像這樣 -

a.swapaxes(2,3).reshape(3,2048,660,1) 
a.transpose(0,1,3,2).reshape(3,2048,660,1) 
np.rollaxis(a,3,2).reshape(3,2048,660,1) 

如果你想有兩面指數在前面,因此它變調 -

a.transpose(0,3,1,2).reshape(3,2048,660,1)