2024-06-01 23:20:51 发布
网友
我有一个大小列表(10,10,3,64)
(10,10,3,64)
这表示64个图像的列表,大小为10x10x3
10x10x3
我想创建一个大小为80x80x3的图像,其中每个图像并排。我不确定如何合并这些轴,以确保图像的完整性。在
80x80x3
举个例子,一个单一的图像是
myList[all][all][all][0]
您可以通过np.concatenate和嵌套列表理解来尝试,例如: 在
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)
给予
列表理解将图像的整个数组分割成存储在长度为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 )
解决这个问题的一个方法是重塑和置换维度。在
1)重塑形状,将最后一个尺寸拆分为两个尺寸。在
下一个调换两个调暗2)。在
3)最后再次整形,将前两个尺寸和下两个尺寸合并为一个尺寸。在
因此,我们会有这样的实现-
np.array(myList).reshape(10,10,3,8,8).transpose(0,3,1,4,2).reshape(80,80,3)
您可以通过
np.concatenate
和嵌套列表理解来尝试,例如: 在给予
^{pr2}$列表理解将图像的整个数组分割成存储在长度为8的列表中的单个图像,然后连接从这些列表中形成一个数组,其中每个图像按顺序存储。在
注意。只需更改使用的数字,就可以相对容易地更改平铺图像的方式。例如,如果需要12x4平铺而不是8x8平铺
解决这个问题的一个方法是重塑和置换维度。在
1)重塑形状,将最后一个尺寸拆分为两个尺寸。在
下一个调换两个调暗2)。在
3)最后再次整形,将前两个尺寸和下两个尺寸合并为一个尺寸。在
因此,我们会有这样的实现-
相关问题 更多 >
编程相关推荐