为了账号安全,请及时绑定邮箱和手机立即绑定

使用 NumPy 将黑色像素转换为白色的最快方法

使用 NumPy 将黑色像素转换为白色的最快方法

婷婷同学_ 2022-06-28 10:04:56
我有一个 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]]])


查看完整回答
反对 回复 2022-06-28
?
皈依舞

TA贡献1851条经验 获得超3个赞

你也可以使用布尔索引来做到这一点,如下所示

mask_color[np.all(mask_color==0, axis=2)] = 255
mask_color


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信