我有两个蒙面numpy阵列。这些是图像。操作在蒙面的Numpy阵列
我想从另一个中减去一个。
如果我做标准减法运算,
ma1 - ma2
它将减去他们,如果他们没有被屏蔽(他们的面具不考虑)。我希望他们减去他们的面具。
有谁知道如何从彼此减去蒙面numpy阵列?
我有两个蒙面numpy阵列。这些是图像。操作在蒙面的Numpy阵列
我想从另一个中减去一个。
如果我做标准减法运算,
ma1 - ma2
它将减去他们,如果他们没有被屏蔽(他们的面具不考虑)。我希望他们减去他们的面具。
有谁知道如何从彼此减去蒙面numpy阵列?
它应该工作。当你在被屏蔽的数组中进行操作时,它将会涉及操作中所涉及的掩码的联合。下面的案例表明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
正如你看到的,结果是一样的...
你确定这可以吗?我正在尝试它,得到相同的问题 –
这两个面具都在同一区域的方式 –
@Highschooler你有任何输入你的数组样本?也许你可以编辑你的问题添加这些信息... –
你最好秀一些示例输入和输出;) – zhangxaochen
对于仅在其中一个数组中掩码的条目,您期望什么?我认为这是不明确的,你应该在操作之后设置掩码来明确应该使用什么掩码。 –