1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 批量nii文件转换为png图像

批量nii文件转换为png图像

时间:2023-10-10 00:50:24

相关推荐

批量nii文件转换为png图像

之前介绍过单个nii文件转换成png图像:

/weixin_43330946/article/details/89501865

这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像。且图像单个文件夹的名称与nii名字相同。

import numpy as npimport os#遍历文件夹import nibabel as nib #nii格式一般都会用到这个包import imageio #转换成图像def nii_to_image(niifile):filenames = os.listdir(filepath) #读取nii文件夹slice_trans = []for f in filenames:#开始读取nii文件img_path = os.path.join(filepath, f)img = nib.load(img_path)#读取niiimg_fdata = img.get_fdata()fname = f.replace('.nii','') #去掉nii的后缀名img_f_path = os.path.join(imgfile, fname)#创建nii对应的图像的文件夹if not os.path.exists(img_f_path):os.mkdir(img_f_path)#新建文件夹#开始转换为图像(x,y,z) = img.shapefor i in range(z): #z是图像的序列silce = img_fdata[i, :, :]#选择哪个方向的切片都可以imageio.imwrite(os.path.join(img_f_path,'{}.png'.format(i)), silce)#保存图像if __name__ == '__main__':filepath = 'nii的文件夹'imgfile = 'image的文件夹'nii_to_image(filepath)

代码是我自己写的,用于处理ADNI的nii格式完全有效。

有问题欢迎指教,一起进步哟!

这几天总有人问问题,这里总结一下常见问题:

1.出现warning不要紧,数据集处理得没问题就行(个人观点);

2.(x,y,z) = img.shape会报错,

这是因为不同的 nii 的shape不同,比如有的是(256,256,155,1),有的是(256,256,155),这时候先查询nii文件的信息(查询代码:/weixin_43330946/article/details/91538695),然后修改成(x,y,z,_)、(x,y)就可以了。如果文件夹中nii的shape有多种可能,写一个 if 语句就可以啦。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。