Python将.nii格式文件转换为.png格式
单独转换一次只转换一个.nii文件import matplotlibmatplotlib.use('TkAgg')import nibabel as nibimport osimport imageio# ---------------------------------------------## nii_path : nii文件的路径# img_save_path : 切片的保存路径# axi
·
单独转换
一次只转换一个.nii文件
import matplotlib
matplotlib.use('TkAgg')
import nibabel as nib
import os
import imageio
# ---------------------------------------------#
# nii_path : nii文件的路径
# img_save_path : 切片的保存路径
# axis : 说明是沿着哪个方向切片的
# ---------------------------------------------
def nii_to_png(nii_path, img_save_path, axis):
# 若保存路径不存在,则创建
if not os.path.exists(img_save_path):
os.makedirs(img_save_path)
nii = nib.load(nii_path)
nii_fdata = nii.get_fdata()
# 以切片的轴向作为保存png的子文件夹名
foldername = axis
png_save_path = os.path.join(img_save_path, foldername)
if not os.path.exists(png_save_path):
os.mkdir(png_save_path)
flag = 100
if axis == 'x':
(axis, y, z) = nii.shape
flag = 0
elif axis == 'y':
(x, axis, z) = nii.shape
flag = 1
elif axis == 'z':
(x, y, axis) = nii.shape
flag = 2
else:
print("wrong axis")
for i in range(axis):
if flag == 0:
slice = nii_fdata[i, :, :]
elif flag == 1:
slice = nii_fdata[:, i, :]
elif flag == 2:
slice = nii_fdata[:, :, i]
# 以数字1,2,3...为png图片命名
imageio.imwrite(os.path.join(png_save_path, '{}.png'.format(i)), slice)
批量转换
import matplotlib
matplotlib.use('TkAgg')
import nibabel as nib
import os
import imageio
def nii_to_png(nii_folder_path, img_save_path, axis):
nii_files = os.listdir(nii_folder_path)
for f in nii_files:
nii_path = os.path.join(nii_folder_path, f)
nii = nib.load(nii_path)
nii_fdata = nii.get_fdata()
# 以切片的轴向作为保存png的子文件夹名
foldername = axis
png_save_path = os.path.join(img_save_path, f, foldername)
if not os.path.exists(png_save_path):
os.mkdir(png_save_path)
flag = 100
if axis == 'x':
(axis, y, z) = nii.shape
flag = 0
elif axis == 'y':
(x, axis, z) = nii.shape
flag = 1
elif axis == 'z':
(x, y, axis) = nii.shape
flag = 2
else:
print("wrong axis")
for i in range(axis):
if flag == 0:
slice = nii_fdata[i, :, :]
elif flag == 1:
slice = nii_fdata[:, i, :]
elif flag == 2:
slice = nii_fdata[:, :, i]
# 以数字1,2,3...为png图片命名
imageio.imwrite(os.path.join(png_save_path, '{}.png'.format(i)), slice)

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)