-
image = image.astype(np.float32)
:- 首先将输入的图像数据类型转换为 32 位浮点数类型,这是因为在后续的数学计算中,使用浮点数能够提高精度和避免数据溢出。
-
image = np.subtract(image, 128.)
:- 接下来,从图像的每个像素值中减去 128。这个操作可以理解为对图像进行均值中心化,即使得图像的均值接近于零。这有助于训练神经网络模型时的收敛速度和稳定性。
-
image = np.multiply(image, 1. / 128.)
:- 最后,将图像的每个像素值乘以 1/128。这个操作可以理解为对图像进行标准化,使得图像的像素值范围在 [-1, 1] 之间。这有助于提高模型训练的泛化能力和数值稳定性。
总的来说,这个归一化处理的步骤包括将图像转换为浮点数类型、进行均值中心化和标准化操作,旨在将图像的像素值调整到一个合适的范围内,以便更好地用于机器学习模型的训练和推理。
完整代码:
def process_img(image):
image = image.astype(np.float32)
image = np.subtract(image, 128.)
image = np.multiply(image, 1. / 128.)
return image