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

当目标数组超过 2d 时如何使用 np.put ?

当目标数组超过 2d 时如何使用 np.put ?

沧海一幻觉 2023-11-09 22:23:34
我想更改 BGR 图像元素。具体来说,如果第 2 个元素等于第 3 个元素,则它们都变为 0。arg1 = np.argwhere(img[:, :, 1] == img[:, :, 2])np.put(img[:, :, 1], arg1, 0)np.put(img[:, :, 2], arg1, 0)我尝试过这个但不起作用。
查看完整描述

1 回答

?
德玛西亚99

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

您的代码确实有效,但只是不是您期望的那样。np.put期望多维矩阵的索引作为元组,同时np.argwhere给出行和列的二维数组。


为了使其变得更简单,您可以使用布尔掩码并完成工作 -


mask = img[:, : ,1] == img[:,:,2]

img[:, :, 0][mask] = 0


查看完整回答
反对 回复 2023-11-09
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

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