首页 > 解决方案 > 如何使用均值和标准对图像进行归一化?

问题描述

我正在尝试使用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计算平均值标准值:

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

但结果图像是相似的:

前:

在此处输入图像描述

邮政:

在此处输入图像描述

我在这里做错了什么?

标签: pythonnumpyimage-processingnormalization

解决方案


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


推荐阅读