import scipy, numpy, shutil, os, nibabel
import sys, getopt
import imageio
def niito2D(filepath):
inputfiles = os.listdir(filepath) #遍历文件夹数据
outputfile = 'result\\' #输出文件夹
print('Input file is ', inputfiles)
print('Output folder is ', outputfile)
for inputfile in inputfiles:
image_array = nibabel.load(filepath+inputfile).get_data() #数据读取
print(len(image_array.shape))
# set destination folder
if not os.path.exists(outputfile):
os.makedirs(outputfile) #不存在输出文件夹则新建
print("Created ouput directory: " + outputfile)
print('Reading NIfTI file...')
total_slices = 30 #总切片数
slice_counter = 70 #从第几个切片开始
# iterate through slices
for current_slice in range(70, 70+total_slices):
# alternate slices
if (slice_counter % 1) == 0:
data = image_array[:, :, current_slice] #保存该切片
# alternate slices and save as png
if (slice_counter % 1) == 0:
print('Saving image...')
#切片命名
image_name = inputfile[:-4] + "{:0>3}".format(str(current_slice + 1)) + ".png"
#保存
imageio.imwrite(image_name, data)
print('Saved.')
# move images to folder
print('Moving image...')
src = image_name
shutil.move(src, outputfile)
slice_counter += 1
print('Moved.')
print('Finished converting images')
if __name__ == '__main__':
niito2D('img\\')
nii转2d图像代码
于 2022-06-14 15:16:30 首次发布
该脚本用于将NIfTI格式的医学图像数据读取并按指定切片范围转换为PNG图片,同时将图片移动到目标文件夹。它遍历指定文件夹中的所有NIfTI文件,对每个文件提取特定切片并保存为PNG,最后将生成的图片移动到结果文件夹。
摘要由CSDN通过智能技术生成