最近在做图像融合,牵扯到图像矩阵数据的处理,其中包括升维,拼接,分离取出的操作,于是参照博客numpy数组拼接方法介绍(concatenate),把自己的测试过程分享记录一下。
已有维的拼接
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.shape)
print("a:",a)
输出结果:
a: [[1 2 3]
[4 5 6]]
先定义一个b,与a形状相同,然后尝试拼接
b=np.array([[11,21,31],[7,8,9]])
c = np.concatenate((a,b),axis=0)
d = np.concatenate((a,b),axis=1)
print(c.shape,d.shape)
print("c: ",c)
print("d: ",d)
输出结果:
c: [[ 1 2 3]
[ 4 5 6]
[11 21 31]
[ 7 8 9]]
d: [[ 1 2 3 11 21 31]
[ 4 5 6 7 8 9]]
升维后拼接
这时候,如果直接使用e = np.concatenate((a,b),axis=2) 会报错,提示没有第3维。于是,先升维。
a = np.expand_dims(a,axis=2)
print(a.shape)
print(a)
输出结果:
a: [[[1]
[2]
[3]]
[[4]
[5]
[6]]]
也是,先对b升维,与a形状相同,然后尝试拼接。
b = np.expand_dims(b,axis=2)
e = np.concatenate((a,b),axis=2)
print(e.shape)
print("e:",e)
输出结果:
e: [[[ 1 11]
[ 2 21]
[ 3 31]]
[[ 4 7]
[ 5 8]
[ 6 9]]]
检验拼接是否正确
接下来,检验一下,是否可以正常取用:
a = e[:,:,0]
b = e[:,:,1]
print("a:",a)
print("b:",b)
输出结果:
a: [[1 2 3]
[4 5 6]]
b: [[11 21 31]
[ 7 8 9]]
应用场景
VIS_batch = source_imgs[start:end, :, :, 0]
IR_batch = source_imgs[start:end, :, :, 1]
其中,start,end是当前批的范围,end-start=batchsize
|