我有想要转换成红色的图像,以防有绿色。如果有红色,我想保留它。
图像处于numpy数组中,如下所示:
x.shape (50,15,3)
在第一个实例中,我想取第三维(R和G)的前两个元素的最大值,并将相应的值设置为R(第一个元素)。 然后我想设置第三维的第二个元素(G)为零。
我该怎么做? 基本上它需要像这样:
x[:,:,0] = max(x[:,:,0],x[:,:,1])
x[:,:,1] = 0
答案 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]