numpy 面具覆盖另一个面具
numpy mask covers another mask
我在一张图像中有不同形状的不同蒙版。由于某些形状包含其他形状,我想检查给定的蒙版是否覆盖了另一个给定的蒙版。例如考虑以下内容:
A=[True, True, True, True, True,
True, False, False, False, True,
True, False, False, False, True,
True, False, False, False, True,
True, True, True, True, True]
B=[False, False, False, False, False,
False, True, True, False, False,
False, True, True, False, False,
False, False, False, False, False,
False, False, False, False, False]
在 5x5 的图像中,A 覆盖 B。如何检查 A 是否覆盖 B?
编辑:
A 和 B 也可以共享一些点,A 仍然涵盖 B:
A=[True, True, True, True, True,
True, False, False, False, True,
True, False, False, False, True,
True, False, False, False, True,
True, True, True, True, True]
B=[False, False, False, False, False,
True, True, True, False, False,
True, True, True, False, False,
False, False, False, False, False,
False, False, False, False, False]
我们可以为 A
填充孔以获得一个 blob,然后用 B
执行 OR-ing
。如果 OR-ing
与空洞填充 A
产生相同的数组,它会得出 A
与 "cover" 相同的结果。要填充孔,我们可以使用 SciPy's binary_fill_holes
-
from scipy.ndimage.morphology import binary_fill_holes
Af = binary_fill_holes(A)
out = (Af == Af | binary_fill_holes(B)).all()
# or np.array_equal(Af, Af | binary_fill_holes(B))
我在一张图像中有不同形状的不同蒙版。由于某些形状包含其他形状,我想检查给定的蒙版是否覆盖了另一个给定的蒙版。例如考虑以下内容:
A=[True, True, True, True, True,
True, False, False, False, True,
True, False, False, False, True,
True, False, False, False, True,
True, True, True, True, True]
B=[False, False, False, False, False,
False, True, True, False, False,
False, True, True, False, False,
False, False, False, False, False,
False, False, False, False, False]
在 5x5 的图像中,A 覆盖 B。如何检查 A 是否覆盖 B?
编辑: A 和 B 也可以共享一些点,A 仍然涵盖 B:
A=[True, True, True, True, True,
True, False, False, False, True,
True, False, False, False, True,
True, False, False, False, True,
True, True, True, True, True]
B=[False, False, False, False, False,
True, True, True, False, False,
True, True, True, False, False,
False, False, False, False, False,
False, False, False, False, False]
我们可以为 A
填充孔以获得一个 blob,然后用 B
执行 OR-ing
。如果 OR-ing
与空洞填充 A
产生相同的数组,它会得出 A
与 "cover" 相同的结果。要填充孔,我们可以使用 SciPy's binary_fill_holes
-
from scipy.ndimage.morphology import binary_fill_holes
Af = binary_fill_holes(A)
out = (Af == Af | binary_fill_holes(B)).all()
# or np.array_equal(Af, Af | binary_fill_holes(B))