如何在二维数据中查找连续区域



我想用不同的标签标记图像中的非连续区域。我想这应该是可能的scikit学习。例如,图像存储在具有0和1的2D numpy.ndarray中,这些数字代表不同的连续区域。

让我们来看看下面这个非常简单的数组,其中我们有两个1的连续区域,但这些区域之间用零隔开。

np.array([
[1, 1, 1, 0, 0, 0],
[1, 1, 0, 0, 0, 1],
[0, 1, 0, 1, 0, 1],
[1, 1, 0, 1, 1, 1]
], dtype = int)

算法应该用类似"1"的标签标记左上连续区域,并用第二个标签"2"标记右下连续区域。

np.array([
[1, 1, 1, 0, 0, 0],
[1, 1, 0, 0, 0, 2],
[0, 1, 0, 2, 0, 2],
[1, 1, 0, 2, 2, 2]
], dtype = int)

有什么提示吗

import numpy as np
from skimage.measure import label
a = np.array([[1, 1, 1, 0, 0, 0],
[1, 1, 0, 0, 0, 1],
[0, 1, 0, 1, 0, 1],
[1, 1, 0, 1, 1, 1]], dtype = int)
label(a)

最新更新