一、NII切片切成2D ndarray灰色图
NII为三维医学图像数据,但有时候网络需要2D数据,因此需要对其进行切片,这里最后以np.ndarray保存。
读进来的NII像素值很大,有些上千的,而灰色图数值在0-255,所以在转的时候很容易越界丢失数据,因此这里需要进行归一化,
示例代码:
cbct_subset_path = CBCT_Folder + "/" + str(CBCT_list[subsetindex]) + "/" + str(CBCT_list[subsetindex]) + ".nii.gz"
cbct_src = sitk.ReadImage(cbct_subset_path)
cbct_array = sitk.GetArrayViewFromImage(cbct_src)
for n_slice in range(cbct_array.shape[0]):
cbct_slice = cbct_array[n_slice,:,:]
cbct_slice = ((cbct_slice - cbct_slice.min()) / (cbct_slice.max() - cbct_slice.min()))*255
cbct_slice = cbct_slice.astype("uint8")
savepath = trainA_Folder + "/" + str(CBCT_list[subsetindex]) + "_" + str(n_slice) + ".npy"
np.save(savepath,cbct_slice)#(512, 512),dtype('uint8')
二、2D ndarray灰色图 -> PIL灰色图
示例代码:
npout = Image.fromarray(npimage)
三、PIL灰色图->PIL RGB彩色图
示例代码:
rgbout = npout.convert('RGB')