Numpy 灰度图像转为黑白

问题描述 投票:0回答:1

我使用 MNIST 数据集,其中包含 28x28 灰度图像,表示为具有 0-255 值的 numpy 数组。我想将图像仅转换为黑白(0 和 1),以便值超过 128 的像素将获得值 1,值低于 128 的像素将获得值 0。

有没有简单的方法?

python numpy mnist
1个回答
0
投票

是的。使用

(arr > 128)
获取与图像形状相同的布尔掩码数组,然后
.astype(int)
将布尔值转换为整数:

>>> import numpy as np
>>> arr = np.random.randint(0, 255, (5, 5))
>>> arr
array([[153, 167, 141,  79,  58],
       [184, 107, 152, 215,  69],
       [221,  90, 172, 147, 125],
       [ 93,  35, 125, 186, 187],
       [ 19,  72,  28,  94, 132]])
>>> (arr > 128).astype(int)
array([[1, 1, 1, 0, 0],
       [1, 0, 1, 1, 0],
       [1, 0, 1, 1, 0],
       [0, 0, 0, 1, 1],
       [0, 0, 0, 0, 1]])
© www.soinside.com 2019 - 2024. All rights reserved.