scikit-learn - 如何在二维数据中找到连续区域
问题描述
我想用不同的标签标记图像中的非连续区域。我想这应该可以通过 scikit-learn 实现。例如,图像存储在具有零和一的二维 numpy.ndarray 中,它们位于不同的连续区域。
让我们看一下以下非常简单的数组,其中我们有两个连续的区域,但这些区域之间用零隔开。
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)
推荐阅读
- java - 在 Eclipse 中安装 UML Designer 的步骤是什么?
- azure - 我已退出我的 Azure DevOps 组织
- c# - 在 EF Core 上使用多个 dbContext
- c++ - 如何使用 std::wifstream 读取单个字符?
- go - 如何调试接受输入文件重定向和输出文件重定向的 Go 二进制文件?
- apache-flink - 使用 Flink Prometheous PushGateway Repoter 但发生 OOM
- r - 将月转换为年
- reactjs - 如何在没有钩子的 React App Calculator 上实现不同的操作
- rust - Rustup 不更新系统共享的 rustc
- javascript - 匹配除特定标签之外的所有标签的所有属性