二维png格式图片批量转三维/四维nii.gz格式

 更:

需要加一句

# 踩坑记录:这一句非常重要,不然的话输出的是四维
# 使用squeeze移除任何大小为1的维度(尽管在这个例子中它可能不会做任何事情)

 image_3d_squeezed = np.squeeze(image_3d)

 下一句也改为:

nii_img = nib.Nifti1Image(image_3d_squeezed, affine)

import pandas as pd
import os
import nibabel as nib
import radiomics
import SimpleITK as sitk
from radiomics import featureextractor
import numpy as np
from PIL import Image
import nibabel as nib

# 读取PNG文件夹路径
png_folder = "E:/zxxzl/srtp02/four_jiqixuexi/pngtransform/pngto3d_all/ARVC"
# 创建保存NIfTI文件的目标文件夹
output_folder = "E:/zxxzl/srtp02/four_jiqixuexi/pngtransform/pngto3d_all/output"
os.makedirs(output_folder, exist_ok=True)

output_path = "E:/zxxzl/srtp02/four_jiqixuexi/pngtransform/pngto3d_all/output/1.nii.gz"
for filename in os.listdir(png_folder):
    if filename.endswith(".png"):
        # 构建完整的文件路径
        png_path = os.path.join(png_folder, filename)

        # 读取PNG图片
        image = Image.open(png_path)
        image_array = np.array(image).astype(np.float32)  # 转换为float32类型

        # 将二维图像转换为三维,层数为1
        image_3d = image_array[:, :, np.newaxis]

        # 创建NIfTI图像对象,使用单位矩阵作为仿射变换矩阵
        affine = np.eye(4)
        nii_img = nib.Nifti1Image(image_3d, affine)

        # 构建目标文件的完整路径和名称
        nii_filename = os.path.splitext(filename)[0] + '.nii.gz'
        output_path = os.path.join(output_folder, nii_filename)

        # 保存为.nii.gz格式
        nib.save(nii_img, output_path)
        print(f"Saved {output_path}")


# 验证维度
# 加载保存的NIfTI文件以验证维度
# loaded_nii = nib.load(output_path)
# print("Loaded image dimensions:", loaded_nii.shape)
# print("Loaded image affine:", loaded_nii.affine)

。。嗯嗯我只是记录一下代码方便之后自己使用,如果有uu不小心看到了请谨慎使用。。嘿嘿

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值