Numpy 中的像素操作

Pixel manipulation in Numpy

我想将所有像素值转换为 0 而不是 255 的值。像素值保存在 Numpy 数组中,即 x 和:

x.shape = (100, 1, 256, 256)

如何用条件操作数组?

我尝试了下面的方法,但出现错误“ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()”

i=0
for i in x[i]:
    if x[i]==255:
        x[i] = x[i]
    else:
        x[i] ==0

只需使用:

x[x==255] = 0

测试:

# Repeatable randomness
np.random.seed(42)

# Synthesise array
x = np.random.randint(0,256, (100, 1, 256, 256), np.uint8)

# Count number of 255s
len(np.where(x==255)[0])    # result = 25671

# Make each 255 into 0
x[x==255] = 0

# Count number of 255s
len(np.where(x==255)[0])    # result = 0