我有两个蒙面的numpy数组。这些是图像。
我试图从另一个中减去一个。
如果我使用标准减法运算符,
ma1 - ma2
它会将它们减去,就好像它们没有被遮盖一样(不考虑它们的面具)。我希望他们用他们的面具减去。
有谁知道如何从彼此中减去蒙面的numpy数组?
答案 0 :(得分:4)
它应该工作。在掩码数组中进行操作时,将采用操作中涉及的掩码的并集。下面的例子显示了numpy如何在两个蒙版数组之间进行减法时选择要更改的值:
a1 = np.random.random((100,100))
a2 = np.random.nandom((100,100))
a1 = np.ma.array(a1, mask=a1<0.5)
a2 = np.ma.array(a2, mask=a2<0.5)
umask = np.logical_or(a1.mask, a2.mask) # <-- union of the masks
test = a1.data - a2.data
test[umask] = a1.data[umask] # <-- "canceling" the operation according to the
# combined mask
np.allclose((a1-a2), test)
#True
如您所见,结果是一样的......