原理引入

由于扫描仪本身以及扫描过程中的偏差等因素,磁场出现变化,MRI扫描显示出强度不均匀,图像的某一部分在可视化时会显得更亮或更暗。这些信号强度的变化并不是由于解剖学差异导致,所以偏置场效应可能会对图像分析造成影响。
N3和N4偏置场校正算法是广泛采用的避免信号强度不均匀性的技术。
在这里插入图片描述

实现

#2024/01/23
#author:看星河的兔子-CSDN
#N4BiasFieldCorrection

import SimpleITK as sitk
import os

path='待转换数据'
path1='已转换数据'
for i in os.listdir(path):
# 进行偏置场校正
    one_img = os.path.join(path,i,'img.nii.gz')
    one_mask = os.path.join(path,i,'mask.nii.gz')
    # 获取数据类型
    image = sitk.ReadImage(one_img)
    mask = sitk.ReadImage(one_mask)
    input_image = sitk.Cast(image, sitk.sitkFloat32)
    input_mask = sitk.Cast(mask, sitk.sitkUInt8)
    corrector = sitk.N4BiasFieldCorrectionImageFilter()
    output_image = corrector.Execute(input_image,input_mask)
    output_image = sitk.Cast(output_image, sitk.sitkUInt16)
    folder_path = os.path.join(path1 , i)
    if not os.path.exists(folder_path):
        os.makedirs(folder_path)
    savepath = os.path.join(folder_path ,'img.nii.gz')
# 保存校正后的数据
    sitk.WriteImage(output_image, savepath)

结果

我处理的是MRI图像数据,原格式是nii.gz
因为我的数据偏置场效应不是很严重,处理之后效果不是很明显,左图为原图像,右图为偏置场效应处理后图像,可以看出像素均匀了。
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐