我正在读入一张图片,其大小为(128,128,3),但我有一个处理函数接收的是numpy数组(3,128,128)。我尝试使用.reshape(3,128,128)
,但这会改变原始图片。有没有一种方法可以改变numpy数组的形状而不改变图片?
img = cv2.imread("elephant copy.jpg") #(128,128,3)
这是我想要传递图像的函数:
def deprocess_image(x):
x = np.subtract(x, x.mean(), out=x, casting="unsafe")
x = np.divide(x, x.std()+1e-5, out=x, casting="unsafe")
x = np.multiply(x, 0.1, out=x, casting="unsafe")
x = np.add(x, 0.5, out=x, casting="unsafe")
x = np.clip(x, 0, 1)
x = np.multiply(x, 255, out=x, casting="unsafe")
x = x.transpose((1, 2, 0))
x = np.clip(x, 0, 255).astype('uint8')
return x
该函数将梯度下降转换为图像,并应返回类似于以下内容的结果:
![enter image description here](https://istack.dev59.com/Toca3.webp)