gpt4 book ai didi

python - numpy:根据多个条件将值设置为零

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:16 26 4
gpt4 key购买 nike

我有一个 RGB 图像,我正在尝试使用类似这样的方法对其执行简单的阈值处理:

from skimage import filter
def threshold(image):
r = image[:, :, 0]
g = image[:, :, 1]
b = image[:, :, 2]

rt = filter.threshold_otsu(r)
gt = filter.threshold_otsu(g)
bt = filter.threshold_otsu(b)

我现在想做的是制作一个二进制掩码,其中原始图像中小于这些阈值的 RGB 值应设置为 0。

mask = np.ones(r.shape)

我不知道该怎么做的是如何将掩码索引 (x, y) 设置为零,其中

image[x, y, 0] < rt and image[x, y, 1] < gt and image [x, y, 2] < bt

我需要以某种方式从满足此条件的原始图像中获取 (x, y) 像素索引,但我不确定如何执行此操作。

最佳答案

NumPy 的 &执行 bit-wise and .当应用于数组时,bit-wise and按元素应用。由于比较,例如r < rt , 返回 bool 数组,bit-wise and 的结果这里与logical and相同.括号是必需的,因为 NumPy 的 &higher precedence< .

mask = (r < rt) & (g < gt) & (b < bt)
image[mask] = 0

关于python - numpy:根据多个条件将值设置为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28279438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com