数据预处理步骤
根据nnUNet框架,三维医学图像分割的通用预处理可以分为四步,分别是数据格式的转换,裁剪crop,重采样resample以及标准化normalization。
1.数据格式的转化
常见的医学图像格式有DICOM(后缀名为.dcm),MHD(后缀名为.mhd和.raw)以及NIFTY(后缀名为.nii或.nii.gz)。
这几种格式都不太方便直接进行操作,一般都使用对应的Python库将数据进行读取后,转换成numpy数组后再进行后续处理。
nnUNet中给出了一种建议的目标数据格式,将每一个病例的数据,都存成一个四维numpy数组(npz)以及与之对应的pickle文件(pkl)。
numpy的文件存储.npy .npz 文件详解
四维数组array(C、X、Y、Z)中,C维度的最后一个array[-1,:,:,:]存储的是分割标注结果。
而C维度的前面存储不同模态的数据,如MRI数据中有FLAIR, T1w, t1gd, T2w等四种模态,
array[0,:,:,:]表示FLAIR序列成像的强度数据,array[1,:,:,:]表示T1加权的强度数据,以此类推。
如果仅单模态,则四维数组第一维度长度仅为2,分别表示影像数据以及标注数据。
四维数组array的后三个维度代表x,y,z三个坐标表示的三维数据,对于原始影像数据,值大小代表强度,
而对于标注结果,后三个维度的三维数据值分别为0,1,2......表示不同的标注类别。