需要安装的包:
pip install SimpleITK
pip install radiomics
代码部分
# 导入相关的包
import radiomics
import SimpleITK as sitk
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
import glob
# 查看其中一个图片
img=Image.open('/content/test/Stack-100.png')
np.array(img).shape # 需要转换为单个通道的灰度图
img_g=np.array(img.convert('L'))
img_g.shape
# 读取png的path
img_path=glob.glob('/content/test/'+'*')
allimg_array=[]
for i in img_path:
img=Image.open(i)
img_array=np.array(img.convert('L')) # 转变为单通道的灰度图
allimg_array.append(img_array)
print('总共图片数量:',len(allimg_array)) # 总共图片数量
print(type(allimg_array))
# 将list转为np.array
allimg_array=np.array(allimg_array)
allimg_array.shape # 与之前读取的nii形状相同
# 通过sitk的包读取array,保存为nii
out_nii = sitk.GetImageFromArray(np.array(allimg_array))
sitk.WriteImage(out_nii,'/content/out_nii.nii.gz')