gpt4 book ai didi

python - 出现空白图像

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:32 25 4
gpt4 key购买 nike

我正在使用 simpleITK 处理 .mha 格式的 MRI 图像。我随后将其转换为 numpy 数组。我可以使用 matplotlib 可视化图像。但是,如果我执行任何预处理或将图像乘以其二进制掩码,我得到的只是一个空白图像。我有什么遗漏的吗?我的简化代码如下所示。

import SimpleITK as sitk
import numpy as np
from matplotlib import pyplot as plt
input_image = sitk.ReadImage('MRI.mha')
input_array = sitk.GetArrayFromImage(input_image)
plt.imshow(input_array[0,:,:],cmap = 'gray') # I get an image for this. No preprocessing has been performed.
plt.show()
# However, if I replace input_array after preprocessing, I get a black square.

我认为这与数据的范围有关,但我无法确定具体位置。预处理前可视化的图像的最大值为 744。预处理后,该值下降到 4,这就是问题出现的时候。有什么指示可以指出我可能出错的地方吗?

最佳答案

在进行任何处理之前,您应该检查图像像素类型。您正在测试的 MRI 图像体积具有 satkInt32(有符号 32 位整数)像素类型。因此,您的处理(例如除法运算)很有可能使像素值为零并得到黑色图像。您可以使用 SimpleITK 将图像转换为 float :

input_image = sitk.ReadImage('MRI.mha')
print(input_image.GetPixelIDTypeAsString())
input_image = sitk.Cast(input_image,sitk.sitkFloat32)
input_array = sitk.GetArrayFromImage(input_image)

或在处理之前更改您的 numpy 数组数据类型:

input_image = sitk.ReadImage('MRI.mha')
input_array = sitk.GetArrayFromImage(input_image)
input_array = input_array.astype(np.float32)

了解有关像素类型的更多信息,请访问 SimpleITK Image Basics notebook .

关于python - 出现空白图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37249255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com