I want to stack two sets of images (im-series1 = 32x32x16 and im_series2 = 32x32x21) based on the median of the z axis and keep the adjacent values with respect to the shape of im-series1 1.
What you should do is first crop im_series2, and then stack. Note that there are two ways to crop im_series to fit im_series1, both are "median".
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)
This outputs:
(32, 32, 16)
(32, 32, 16)
(32, 32, 32)