一,png图片组合成nii文件
通过ITK-SNAP吐出来的文件都是nii形式的3d文件,但是跑深度学习的时候需要2d的图片以及mask相对应,所以一种方法是拆nii文件,一种方法是把png组合成nii显示三维文件,这里为了和后面模块的一致性,讲一下如何把png组合成nii(如何把dcm转换成png已经在预处理(1)中讲过)https://blog.csdn.net/bosomy_brain/article/details/135671897?spm=1001.2014.3001.5502。
利用前面处理好的png,我们就可以得到需要的nii文件,
import numpy as np
import nibabel as nib
from glob import glob
from PIL import Image
label_path = r'C:\Users\22495\Desktop\dcm.png\*'
label_path = glob(label_path)#获得所有dcm.png的路径
image = Image.open(label_path[1])#打开第一张照片确定初始大小
x = image.width
y = image.height
allImage = np.zeros([x, y, len(label_path)], dtype='uint8')
for i in range(len(label_path)):
image = Image.open(label_path[i])
bw_image = image.convert("L")
#把每一个4通道png转换成灰度图
allImage[:, :, i] = bw_image#把图像堆叠
new_image = nib.Nifti1Image(allImage, np.eye(4))
nib.save(new_image, 'mr_data.nii.gz')
这里面有些地方讲解一下。
allImage = np.zeros([x, y, len(label_path)], dtype='uint8')
上面这句话可以理解为做了一个盒子,之后把照片一张张放进去,他就变成了三维图像,当然nii还包含其他的一些信息,可以继续去了解一下。