Opencv有时会返回用于过滤的掩码。
提供数组A=[[1,2],[3,4],[5,6]]
并屏蔽mask=[1,1]
我应该如何使用遮罩获得[[1,6]]
?
我尝试了A[mask==1]
,但是它说尺寸不匹配。
np.where
和np.nonzero
似乎也不起作用。
编辑:
结果证明A[mask==1]
有用,
在实际情况中,我遇到的是mask.shape
是(n,1)
而不是(n,)
那多余的1造成了麻烦。np.squeeze
解决了问题
Opencv有时会返回用于过滤的掩码。
提供数组A=[[1,2],[3,4],[5,6]]
并屏蔽mask=[1,1]
我应该如何使用遮罩获得[[1,6]]
?
我尝试了A[mask==1]
,但是它说尺寸不匹配。
np.where
和np.nonzero
似乎也不起作用。
编辑:
结果证明A[mask==1]
有用,
在实际情况中,我遇到的是mask.shape
是(n,1)
而不是(n,)
那多余的1造成了麻烦。np.squeeze
解决了问题
喜欢吗?
A = np.array([[1,2],[3,4],[5,6]])
mask = np.array[1,1])
>>> A[np.where(mask==1),:]
array([[[1,6]]])
,
两者
mask = mask.nonzero()
res = A[mask]
和
mask = mask.astype(bool)
res = A[mask]
应该工作!