【发布时间】:2020-02-08 23:12:25
【问题描述】:
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()
谢谢。
【问题讨论】:
-
你怎么知道它“不会产生结果”?你期待什么结果,你实际得到什么结果? minimal reproducible example 也可能会有所帮助。
-
如果位置 x 的平均强度小于 58,我希望 x 为 [255, 255, 255]
-
现在没有像素变为 255 或 0
-
你想要
axis=2或axis=-1。前两个轴(0 和 1)是图像的行和列。此外,如果您首先将所有像素 >= 58 更改为 [255,255,255],那么在下一步中您将所有像素设置为 [0,0,0]