我有一个 RGB 彩色图像蒙版mask_color,形状 (4,4,3)。如何快速将所有黑色像素转换[0,0,0]为白色[255,255,255],不使用任何循环,不使用额外的包,最好是 NumPy 方式?mask_color = np.array([ [ [0,0,0], [128,0,255], [0,0,0], [0,0,0] ], [ [0,0,0], [0,0,0], [0,0,0], [0,0,0] ], [ [0,0,0], [50,128,0], [0,0,0], [0,0,0] ], [ [0,0,0], [0,0,0], [245,108,60], [0,0,0] ]])plt.imshow(mask_color)plt.show()white_bg_mask_color = # do somethingplt.imshow(white_bg_mask_color)plt.show()
2 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
您可以使用 np.where:
>>> np.where(mask_color.any(-1,keepdims=True),mask_color,255)
array([[[255, 255, 255],
[128, 0, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[ 50, 128, 0],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[245, 108, 60],
[255, 255, 255]]])
皈依舞
TA贡献1851条经验 获得超3个赞
你也可以使用布尔索引来做到这一点,如下所示
mask_color[np.all(mask_color==0, axis=2)] = 255 mask_color
添加回答
举报
0/150
提交
取消