提取被黑人包围的白人的指数
Extract the indices of whites surrounded by blacks
import numpy as numpy
data = np.array([[0, 0 , 0 , 0 , 0 , 0 , 0 , 0],
[0,*1*, 0 , 0 , 0 , 0 , 0 , 0],
[1, 0 , 0 , 0 ,*1*, 0 , 0 , 0],
[1, 0 , 0 , 0 ,*1*,*1*, 0 , 0],
[0, 0 , 0 ,*1*,*1*, 0 , 0 , 1],
[1, 0 , 0 , 0 ,*1*, 0 , 1 , 1],
[1, 1 , 0 , 0 , 0 , 0 , 1 , 0]])
如果补丁在所有四个相邻像素中都被黑色(零)包围,我想提取白色(个)补丁的索引。
预期位置用斜体字表示。
有什么想法吗?
首先,标记图像中所有连接的对象(默认结构元素考虑北-南-东-西方向的邻居)。然后,删除所有接触边框的对象。背景标记为0,其余为完全被背景包围的物体。
from __future__ import print_function
import numpy as np
from scipy.ndimage import label
from skimage.segmentation import clear_border
data = np.array([[0, 0 , 0 , 0 , 0 , 0 , 0 , 0],
[0, 1 , 0 , 0 , 0 , 0 , 0 , 0],
[1, 0 , 0 , 0 , 1 , 0 , 0 , 0],
[1, 0 , 0 , 0 , 1 , 1 , 0 , 0],
[0, 0 , 0 , 1 , 1 , 0 , 0 , 1],
[1, 0 , 0 , 0 , 1 , 0 , 1 , 1],
[1, 1 , 0 , 0 , 0 , 0 , 1 , 0]])
objects, count = label(data)
objects_inside = clear_border(objects)
print((objects_inside != 0).astype(int))
结果:
[[0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 1 1 0 0]
[0 0 0 1 1 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0]]
import numpy as numpy
data = np.array([[0, 0 , 0 , 0 , 0 , 0 , 0 , 0],
[0,*1*, 0 , 0 , 0 , 0 , 0 , 0],
[1, 0 , 0 , 0 ,*1*, 0 , 0 , 0],
[1, 0 , 0 , 0 ,*1*,*1*, 0 , 0],
[0, 0 , 0 ,*1*,*1*, 0 , 0 , 1],
[1, 0 , 0 , 0 ,*1*, 0 , 1 , 1],
[1, 1 , 0 , 0 , 0 , 0 , 1 , 0]])
如果补丁在所有四个相邻像素中都被黑色(零)包围,我想提取白色(个)补丁的索引。 预期位置用斜体字表示。
有什么想法吗?
首先,标记图像中所有连接的对象(默认结构元素考虑北-南-东-西方向的邻居)。然后,删除所有接触边框的对象。背景标记为0,其余为完全被背景包围的物体。
from __future__ import print_function
import numpy as np
from scipy.ndimage import label
from skimage.segmentation import clear_border
data = np.array([[0, 0 , 0 , 0 , 0 , 0 , 0 , 0],
[0, 1 , 0 , 0 , 0 , 0 , 0 , 0],
[1, 0 , 0 , 0 , 1 , 0 , 0 , 0],
[1, 0 , 0 , 0 , 1 , 1 , 0 , 0],
[0, 0 , 0 , 1 , 1 , 0 , 0 , 1],
[1, 0 , 0 , 0 , 1 , 0 , 1 , 1],
[1, 1 , 0 , 0 , 0 , 0 , 1 , 0]])
objects, count = label(data)
objects_inside = clear_border(objects)
print((objects_inside != 0).astype(int))
结果:
[[0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 1 1 0 0]
[0 0 0 1 1 0 0 0]
[0 0 0 0 1 0 0 0]
[0 0 0 0 0 0 0 0]]