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

Jos*_*mon 8 python numpy image

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

Fre*_*red 16

new_arr = ((arr + 0.1) * (1/0.3) * 255).astype('uint8')
Run Code Online (Sandbox Code Playgroud)

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

一般来说,您可以使用:

new_arr = ((arr - arr.min()) * (1/(arr.max() - arr.min()) * 255)).astype('uint8')
Run Code Online (Sandbox Code Playgroud)