如何根据像素平均值分配颜色

时间:2020-02-08 14:51:57

标签: python image numpy

image_copy是RGB图像。

如果三个分量(R,G,B)的平均值小于某个值,则该像素将为白色。如果较小,我会给它黑色值。

我尝试使用np.where和np.mean,但没有产生结果。

    imagen = io.imread('example.jpg')
    imagen_copy = imagen.copy()
    imagen_copy[np.where((np.mean(imagen_copy, axis=1) <= 58.0))] = [255,255,255]
    imagen_copy[np.where((np.mean(imagen_copy, axis=1) > 58.0))] = [0, 0, 0]
    io.imshow(imagen_copy)
    plt.show()

谢谢。

1 个答案:

答案 0 :(得分:1)

IIUC您想沿最后一个轴取平均值,而不是对这两种情况都使用data.withUnsafeBytes{ Array($0.bindMemory(to: UInt16.self))} ,以下条件就足够了:

np.where