from scipy import ndimage
import numpy as np
import SimpleITK as sitk
import nibabel as nib
import matplotlib.pyplot as plt
import os
if __name__ == '__main__':
working_dir = "case01_label/"
# 因为mege之前要分块预测,所以640是提前知道的
nums = 640//128
filenames = os.listdir(working_dir)
cnt = 0
res_arry = np.ndarray(shape=[640,640,640])
func = None
for i in range(nums):
for j in range(nums):
for k in range(nums):
file_path = os.path.join(working_dir,filenames[cnt])
func = nib.load(file_path)
img2 = np.array(func.get_fdata())
res_arry[i*128:(i+1)*128,j*128:(j+1)*128,k*128:(k+1)*128] \
= img2
print(f'part {cnt:03} done.')
cnt +=1
new_image = nib.Nifti1Image(res_arry,func.affine)
nib.save(new_image,f'case01_label_merge.nii')
将切割后的多块3d医学图像合成一个大图
最新推荐文章于 2023-01-12 20:35:44 发布