numpy操作:将绿色转换为红色

时间:2017-10-12 11:04:11

标签: python numpy python-imaging-library

我有想要转换成红色的图像,以防有绿色。如果有红色,我想保留它。

图像处于numpy数组中,如下所示:

x.shape (50,15,3)

在第一个实例中,我想取第三维(R和G)的前两个元素的最大值,并将相应的值设置为R(第一个元素)。 然后我想设置第三维的第二个元素(G)为零。

我该怎么做? 基本上它需要像这样:

x[:,:,0] = max(x[:,:,0],x[:,:,1])
x[:,:,1] = 0

1 个答案:

答案 0 :(得分:1)

看来你已经找到了第二步。这是第一步的一种方法 -

x[...,0] = x[...,:2].max(axis=-1)

或者,我们也可以使用np.maximum进行逐元素最大计算 -

x[...,0] = np.maximum(x[...,0], x[...,1])

或者,我们也可以使用masking -

mask = x[...,0] < x[...,1]
x[mask,0] = x[mask,1]