import os
import nibabel as nib
import numpy as np
import matplotlib.pyplot as plt
def convert_nii_to_png(input_folder, output_folder):
# 检查输出文件夹是否存在,如果不存在则创建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹中的所有.nii.gz文件
for filename in os.listdir(input_folder):
if filename.endswith(".nii.gz"):
filepath = os.path.join(input_folder, filename)
# 使用NiBabel加载.nii.gz文件
nii_img = nib.load(filepath)
# 将图像数据转换为numpy数组
img_array = nii_img.get_fdata()
# 对每个切片进行处理
for i in range(img_array.shape[2]):
# 获取当前切片
slice_data = img_array[:, :, i]
# 创建matplotlib图像对象
plt.imshow(np.rot90(slice_data)) # 对图像进行旋转以正确显示
# 生成输出文件名
output_filename = os.path.splitext(filename)[0] + f"_slice{i}.png"
output_filepath = os.path.join(output_folder, output_filename)
# 保存为.png文件
plt.savefig(output_filepath)
# 清除当前图像以准备下一个切片
plt.clf()
# 指定输入文件夹和输出文件夹的路径
input_folder = "/home/ybin2023/下载/20227297_uuuMcACkctyxWGyKfKvqSifdh/ADNInii"
output_folder = "/home/ybin2023/下载/20227297_uuuMcACkctyxWGyKfKvqSifdh/px"
# 调用函数进行转换
convert_nii_to_png(input_folder, output_folder)
将input_folder和output_folder替换为实际的文件夹路径ji即可,等待程序运行完毕即可.