我有大小的列表(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