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

我想更改 BGR 图像元素。

具体来说,如果第 2 个元素等于第 3 个元素,则它们都变为 0。


arg1 = np.argwhere(img[:, :, 1] == img[:, :, 2])

np.put(img[:, :, 1], arg1, 0)

np.put(img[:, :, 2], arg1, 0)

我尝试过这个但不起作用。


沧海一幻觉
浏览 80回答 1
1回答

德玛西亚99

您的代码确实有效,但只是不是您期望的那样。np.put期望多维矩阵的索引作为元组,同时np.argwhere给出行和列的二维数组。为了使其变得更简单,您可以使用布尔掩码并完成工作 -mask = img[:, : ,1] == img[:,:,2]img[:, :, 0][mask] = 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python