def decompose_vol2cube(vol_data, batch_size, cube_size, n_chn, ita):
cube_list = []
# get parameters for decompose
fold, ovlap = fit_cube_param(vol_data.shape, cube_size, ita)
dim = np.asarray(vol_data.shape)
# decompose
for R in range(0, fold[0]):
r_s = R*cube_size - R*ovlap[0]
r_e = r_s + cube_size
if r_e >= dim[0]:
r_s = dim[0] - cube_size
r_e = r_s + cube_size
for C in range(0, fold[1]):
c_s = C*cube_size - C*ovlap[1]
c_e = c_s + cube_size
if c_e >= dim[1]:
c_s = dim[1] - cube_size
c_e = c_s + cube_size
for H in range(0, fold[2]):
h_s = H*cube_size - H*ovlap[2]
h_e = h_s + cube_size
if h_e >= dim[2]:
h_s = dim[2] - cube_size
h_e = h_s + cube_size
# partition multiple channels
cube_temp = vol_data[r_s:r_e, c_s:c_e, h_s:h_e]
cube_batch = np.zeros([batch_size, cube_size, cube_size, cube_size, n_chn]).astype('float32')
cube_batch[0, :, :, :, 0] = copy.deepcopy(cube_temp)
# save
cube_list.append(cube_batch)
return cube_list
# compose list of label cubes into a label volume
评论列表
文章目录