我正在尝试使用 satk 库来清除有偏差的 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
关于python - 使用sitk获取偏置场,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70971630/