使用 sitk 获取偏差场
Get bias field using sitk
我正在尝试使用 sitk 库来清除有偏差的 Mr 图像 (MRI)。
我可以得到校正后的图像,但无法得到偏差图像。
设置以下参数:
shrink_factor=1,
mask_image=mask,
number_of_iterations=100,
number_of_fitting_levels=4
这是我试过的代码
corrected_image = corrector.Execute(image, maskImage)
log_bias_field = corrector.GetLogBiasFieldAsImage(inputImage)
bias_exp = sitk.Cast(sitk.Exp(log_bias_field), sitk.sitkFloat64)
bias = inputImage / bias_exp
bias = sitk.GetArrayFromImage(bias)
bias = bias / bias.max()
但我得到了这张图片:
你知道如何只得到偏差吗?
要获得偏置场函数,您需要决定全分辨率图像的分辨率:
bias_field_full_resolution = sitk.Exp(corrector.GetLogBiasFieldAsImage(biased_image_full_resolution))
调用 Execute
方法时,会估计偏差场,校正后的图像与输入具有相同的分辨率,通常是原始偏差图像的重采样版本。
如果我们真的想以原始分辨率校正图像:
bias_field_full_resolution = sitk.Exp(corrector.GetLogBiasFieldAsImage(biased_image_full_resolution))
corrected_image_full_resolution = biased_image_full_resolution / bias_field_full_resolution
我正在尝试使用 sitk 库来清除有偏差的 Mr 图像 (MRI)。
我可以得到校正后的图像,但无法得到偏差图像。
设置以下参数:
shrink_factor=1,
mask_image=mask,
number_of_iterations=100,
number_of_fitting_levels=4
这是我试过的代码
corrected_image = corrector.Execute(image, maskImage)
log_bias_field = corrector.GetLogBiasFieldAsImage(inputImage)
bias_exp = sitk.Cast(sitk.Exp(log_bias_field), sitk.sitkFloat64)
bias = inputImage / bias_exp
bias = sitk.GetArrayFromImage(bias)
bias = bias / bias.max()
但我得到了这张图片:
你知道如何只得到偏差吗?
要获得偏置场函数,您需要决定全分辨率图像的分辨率:
bias_field_full_resolution = sitk.Exp(corrector.GetLogBiasFieldAsImage(biased_image_full_resolution))
调用 Execute
方法时,会估计偏差场,校正后的图像与输入具有相同的分辨率,通常是原始偏差图像的重采样版本。
如果我们真的想以原始分辨率校正图像:
bias_field_full_resolution = sitk.Exp(corrector.GetLogBiasFieldAsImage(biased_image_full_resolution))
corrected_image_full_resolution = biased_image_full_resolution / bias_field_full_resolution