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