我有大小的列表(10,10,3,64)
構建圖像
這代表尺寸爲64個的圖像的列表10x10x3
我想創建大小80x80x3
,的1個圖像,其中每個圖像是並排。我不確定如何合併這些軸以確保圖像完整性。
只是一個例子,一個勁兒地圖像是解決這將是與重塑和置換尺寸
myList[all][all][all][0]
我有大小的列表(10,10,3,64)
構建圖像
這代表尺寸爲64個的圖像的列表10x10x3
我想創建大小80x80x3
,的1個圖像,其中每個圖像是並排。我不確定如何合併這些軸以確保圖像完整性。
只是一個例子,一個勁兒地圖像是解決這將是與重塑和置換尺寸
myList[all][all][all][0]
IIUC一種方式。
1)重塑將最後一個維度拆分爲兩個維度。
2)移調使最後兩個分裂變暗接近前兩個變暗)。 3)最後重新塑形,將前兩個變暗和後兩個變暗合併成一個變暗。
因此,我們必須像這樣的實現 -
np.array(myList).reshape(10,10,3,8,8).transpose(0,3,1,4,2).reshape(80,80,3)
您可以通過np.concatenate
和嵌套列表內涵試試這個,例如:
arr = np.array(mylist)
arr2 = np.concatenate([ np.concatenate([arr[...,i + 8*j] for i in np.arange(8)],axis=0) for j in np.arange(8)],axis=1)
print(arr2.shape)
給
(80, 80, 3)
列表解析將全部圖像分解爲ind存儲在長度爲8的列表中的單個圖像,並且連接然後從這些列表中形成數組,其中按順序存儲每個圖像。
注意。只需更改所用的數字,就可以相對容易地改變您想要平鋪圖像的方式。例如,如果你想12x4平鋪,而不是8x8
arr2 = np.concatenate([ np.concatenate([arr[...,i + 12*j] for i in np.arange(12)],axis=0) for j in np.arange(4)],axis=1)
所以,'np.array(myList).shape'會是'(10,10,3,64)',對不對? – Divakar