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

两个numpy格式图像掩膜叠加时仅保留0、1、2像素值的实现方法

Numpy图像掩膜合并解决方案

你之前用位或运算得到四类像素的原因是:像素值2的二进制为10,像素值1的二进制为01,二者位或运算结果为11即十进制的3,因此会出现预期外的像素值。

符合你规则的实现方式有两种,都可以保证输出仅包含0、1、2三类像素:

  • 方案1:布尔索引赋值,逻辑清晰易读
import numpy as np

# 以img2为基准初始化,保证img2为0的区域输出为0、为1的区域默认输出为1
image3 = img2.copy()
# 覆盖所有img1中值为2的位置,保证2的最高优先级
image3[img1 == 2] = 2
  • 方案2:np.where单行实现,运算效率更高
image3 = np.where(img1 == 2, 2, img2)

上述两种方案都完全匹配你提出的合并规则:

  1. img2为0的位置,输出统一为0
  2. img2为1且img1不为2的位置,输出为1
  3. 所有img1为2的位置,无论img2的值是什么,输出统一为2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:39:06