递减图片的蓝色通道的所有奇数值



我有一个形状的图像(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]])

最新更新