一,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还包含其他的一些信息,可以继续去了解一下。

参考:多张png合成为nii.gz_python 多张png合成为nii.gz-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐