python - 使用sitk获取偏置场

标签 python simpleitk mri

我正在尝试使用 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^^

你知道如何获得偏差吗?

最佳答案

要获得偏置场函数,您需要决定全分辨率图像的分辨率:

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/

相关文章:

python - 如何在新的 virtualenv 上安装 PyQt5 并在 IDLE 上工作

python - Django 限制每分钟的请求数

python - SimpleITK,读取元数据而不加载图像数组

python open() 在打开命名中包含空格的文件时出现错误(即示例 text.txt)

python - 仅针对特定轴的克罗内克乘法

python - 从 SimpleITK 变换获取矩阵和平移

ruby-on-rails - 当有足够的空闲堆槽时,ruby 请求更多内存

ruby - 我如何知道我使用的是哪个 Ruby 解释器?

ruby - MRI 优于 JRuby 的典型工作负载示例有哪些?