我有一个形状的图像(455500,3(。我想做的是减少蓝色通道的所有奇数值,而只减少蓝色通道。我做到了,但不起作用:
for i in range(im_modif[i,i,2]):
if np.all(im_modif[:,:,2]%2!=0):
im_modif[i][i][i]-1
让我们做一个可复制的例子:
import numpy as np
x = np.random.randint(0, 256, (100, 100, 3))
现在,您可以从第三个(蓝色(通道中选择所有值,在用2进行模运算后得到1,并将所有值减少1:
x[..., -1][np.mod(x[..., -1], 2) == 1] -= 1
现在所有的值都是偶数(我想这就是你想要的(:
array([[162, 138, 222, ..., 200, 58, 216],
[ 34, 2, 86, ..., 150, 122, 28],
[104, 206, 238, ..., 40, 86, 238],
...,
[ 24, 182, 28, ..., 86, 176, 28],
[184, 206, 140, ..., 26, 22, 80],
[238, 140, 142, ..., 216, 62, 80]])