You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NIfTI文件转JPG预处理方法及操作合理性咨询

使用Python代码预处理NIfTI文件
import os
import nibabel as nib
from PIL import Image
import numpy as np

def convert_nifti_to_jpeg(nifti_file, output_dir, dpi=300, output_size=(300, 300)):
    # 加载NIfTI文件
    img = nib.load(nifti_file)
    data = img.get_fdata()

    # 遍历所有切片并保存为JPEG图像
    for i in range(data.shape[2]):
        # 提取2D切片
        slice_data = data[:, :, i]

        # 将像素值归一化到0-255(适配uint8编码)
        min_val = np.nanmin(slice_data)
        max_val = np.nanmax(slice_data)

        # 处理除零或NaN值情况
        if min_val == max_val:
            normalized_slice = np.zeros_like(slice_data)
        else:
            normalized_slice = ((slice_data - min_val) / (max_val - min_val) * 255).astype('uint8')

        # 从numpy数组创建PIL图像
        image = Image.fromarray(normalized_slice)

        # 转换为灰度模式('L')
        image = image.convert('L')

        # 将图像调整为指定尺寸
        image = image.resize(output_size)

        # 定义输出文件路径
        output_file = os.path.join(output_dir, f'slice_{i}.jpg')

        # 以指定DPI保存为JPEG格式
        image.save(output_file, format='JPEG', dpi=(dpi, dpi))

我已经实现了将NIfTI文件转换为JPG图像用于模型训练的操作,但有个疑问:其他切片是否包含重要信息?不过我确认过,这些切片都无法显示完整的脑部结构。

每位患者对应4种不同模态的NIfTI文件:

  • Flair
  • T2
  • T1
  • T1ce

将单份NIfTI文件转换为2D切片后,共得到155张切片,其中仅第78张能显示完整脑部,因此我只提取了这一层MRI图像。

考虑到T1ce是T1的增强形式,我决定忽略T1模态,转而将以下三种模态合并为多通道图像用于模型训练:

  • Flair
  • T1ce
  • T2w

合并后的多通道MRI图像效果如下:
(图像呈现了三种模态融合后的完整脑部MRI结构,各模态特征在通道中得到保留)

内容的提问来源于stack exchange,提问作者Talha Imran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:23:13