从 npz 文件派生的可视化图像中的问题

problem in visualized image derived from npz file

我正在尝试在 npz 格式的文件中打开和可视化不同 ct 切片的图像,以便稍后继续我的 NN 分割任务。 我使用了以下代码:

data = np.load('case0005_slice060.npz')
image = data['image']
img = Image.fromarray(image,'RGB')

最后,我可以想象图像了,但似乎哪里有问题我无法理解。这是输出(问题是我可能需要解决重叠图像但我不知道如何解决)

首先,检查你有什么。您需要知道 Numpy 数组的形状和类型:

print(image.shape, image.dtype)

如果形状是 h,w,3 的形式,则可能是 RGB。如果是 h,w 形式,它很可能是灰度,您可以在从中创建 PIL Image 时将 'L' 作为模式而不是 'RGB',尽管您通常可以离开该模式out,它是从 Numpy 数组形状推断出来的。

然后你需要考虑dtype。如果 np.uint8,你就准备好了。如果除此之外,您可能需要提供 PIL 接受的 modes 之一,或者使用类似以下的内容进行转换:

img = Image.fromarray(image.astype(np.uint8))

谢谢。 我将 float32 的图像归一化并删除了 RGB 这里是最终代码:

from numpy import load
import matplotlib.pyplot as plt
def normalize8(I):
    mn = I.min()
    mx = I.max()

    mx -= mn

    I = ((I - mn)/mx) * 255
    return I.astype(np.uint8)

data = np.load('case0005_slice060.npz')
print(data.files)
image = data['image']
image=normalize8( image)
img = Image.fromarray(image)