原理引入
由于扫描仪本身以及扫描过程中的偏差等因素,磁场出现变化,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
因为我的数据偏置场效应不是很严重,处理之后效果不是很明显,左图为原图像,右图为偏置场效应处理后图像,可以看出像素均匀了。