如何使用 mean 和 std 对图像进行归一化?

How to normalize images using mean and std?

我正在尝试使用 numpy 来标准化一组 MRI 图像,但它似乎不起作用。简化代码为:

img = nib.load(img_path).get_data() #img is a numpy array
print("pre\n============================")
plt.imshow(img[:,:,100])
plt.ioff()
plt.show()

img = (img - 47.08389527329749)/125.64995558389833

print("post\n============================")
plt.imshow(img[:,:,100])
plt.ioff()
plt.show()

用 numpy 计算 meanstd 值:

mean = np.mean(image_list) # 47.08389527329749
std = np.std(image_list) # 125.64995558389833

但结果图像相似:

pre:

post:

我哪里做错了?

您应该打印矩阵的数值而不是绘制图像。我认为这个过程很顺利。 归一化的目的是将值集中在给定区间,这里是标准正态分布的值,如果您使用多个属性,则设置相同的范围。它不应该消除给定属性值之间的相对差异,这里是像素强度。