缩放numpy数组,从-0.1 - 0.2到0-255

时间:2018-04-19 13:34:12

标签: python image numpy

我在python中有一个numpy数组,它代表一个大小为28x28x3的图像,而它的最大值是0.2,min是-0.1。我想在0-255之间缩放该图像。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

new_arr = ((arr + 0.1) * (1/0.3) * 255).astype('uint8')

首先将向量缩放到[0,1]范围,将其乘以255,然后将其转换为uint8,这是图像的常见格式(例如,opencv使用它)

一般情况下,您可以使用:

new_arr = ((arr - arr.min()) * (1/(arr.max() - arr.min()) * 255).astype('uint8')

答案 1 :(得分:0)

在从numpy数组存储图像时,也可以使用uint8数据类型。

import numpy as np from PIL import Image img = Image.fromarray(np.uint8(tmp))

tmp是我的np数组,大小为255 * 255 * 3。