沿 z 轴的中线堆叠两个 3D numpy 数组并保持较小数组的大小

Stacking two 3D numpy arrays along the median of the z-axis and keep the size of the smaller array

我想根据 z 轴的中值堆叠两组图像(im-series1 = 32x32x16 和 im_series2 = 32x32x21)并保持相对于 im-series1 形状的相邻值1.

你应该做的是先裁剪im_series2,然后堆叠。请注意,有两种方法可以裁剪 im_series 以适应 im_series1,两者都是“中位数”。

import numpy as np
im_series2 = np.ones((32, 32, n)) # this is im_series2 as an example
mid = n // 2
im_series2 = im_series2[:, :, mid-8:mid+8] # this is the cropping. [:,:,2:-3] is also valid
print(im_series2.shape)
im_series1 = np.ones((32, 32, 16)) # this is im_series1 as an example
print(im_series1 .shape)
c = np.concatenate((im_series1 , im_series2), axis=-1) # this concatenates them on the z_axis
print(c.shape)

这输出:

(32, 32, 16)
(32, 32, 16)
(32, 32, 32)