You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用numpy将不在允许值列表中的RGB图像像素设为白色

我有一张RGB像素格式的图像,还有一个像素列表meaningful_pixels: List[Tuple(int, int, int)],存储了我认定为有效信息的像素值,我需要将所有不在该列表中的像素统一设置为白色(255, 255, 255)。

原始图像如下:
原始图像

我期望的处理效果如下:
处理后图像

现在我已经成功生成了“允许像素”列表,对应左上角矩形的“紫到黄”渐变色彩,存储在meaningful_pixels变量中,形状为(num_of_pixels, 3)。

之前我可以通过创建mask的方式移除黑色矩形,对应代码如下:

# 实际运行代码
mask = np.all(image == [0, 0, 0], axis=-1)
image[mask] = [255, 255, 255]

但我不知道当允许值是一个列表而非单个值时,该如何生成对应mask。之前我用for循环实现过该功能,但性能非常差,现在需要用numpy的向量化方法实现最高效的处理,达到类似如下伪代码的效果:

# 伪代码
image = np.remove_value_if_not_in_list(image, allowed_pixels)

解决方案

# 生成“允许像素”的mask
mask = np.all(np.isin(img, allowed_pixels) == [True, True, True], axis=-1)
# 对mask取反,将非允许像素替换为白色
img[~mask] = [255, 255, 255]

内容的提问来源于stack exchange,提问作者wirher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:36:02