2017-09-24 46 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)