寻找numpy图像的重叠部分

3
如果我有两个numpy数组:
a = np.array[[0,1,1],
             [0,1,0],
             [0,0,0]] 
b = np.array[[0,1,1],
             [0,0,1],
             [0,0,0]]

我该如何找到它们之间的“重叠”,以便输出为:
c =         [[0,1,1],
             [0,0,0],
             [0,0,0]]  

我有这个,但是否有更快的方法,因为我的数组很大?
c = a + b - 1
c[c<0] = 0

希望那里的答案有所帮助。 - Mathias711
1个回答

4

如果像您的例子一样,数组中的值只有0或1,您可以使用按位“与”运算符&

In [3]: a
Out[3]: 
array([[0, 1, 1],
       [0, 1, 0],
       [0, 0, 0]])

In [4]: b
Out[4]: 
array([[0, 1, 1],
       [0, 0, 1],
       [0, 0, 0]])

In [5]: c = a & b

In [6]: c
Out[6]: 
array([[0, 1, 1],
       [0, 0, 0],
       [0, 0, 0]])

1
谢谢。事实证明,c = a == b 实际上要快得多! - kezzos
@kezzos,这是相同的结果吗?如果a和b的值匹配,c = a == b将返回true,而c = a&b将在两者都为1时返回1。 - Chris Farr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接