有没有一种方法可以用相同的元素“标记”numpy数组中的相邻元素?

2024-04-23 06:43:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Python2.7,我在OpenCV中随机生成区域,最后在numpy数组中如下所示:

    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 1 1 0 0
    0 0 0 0 0 0 0 0 0 0 1 1 0 0
    0 0 0 0 0 0 0 0 0 0 0 1 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 1 1 1 0 0 0 0 0 0
    0 0 0 0 0 1 1 1 0 0 0 0 0 0
    0 0 0 0 0 1 1 0 0 0 0 0 0 0
    0 0 0 0 0 1 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0

实际上,我使用更大的矩阵,最多可以生成5个区域。 我要做的是读取生成的矩阵和“分组”区域,生成第二个矩阵,如下所示:

    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 1 1 0 0
    0 0 0 0 0 0 0 0 0 0 1 1 0 0
    0 0 0 0 0 0 0 0 0 0 0 1 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 2 2 2 0 0 0 0 0 0
    0 0 0 0 0 2 2 2 0 0 0 0 0 0
    0 0 0 0 0 2 2 0 0 0 0 0 0 0
    0 0 0 0 0 2 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0

如果最后有一个有5个点的矩阵。 我对python还很陌生,但不知怎么的,我认为这可能是一种简单快速的方法。我希望有人能帮助我。你知道吗


Tags: 方法numpy区域矩阵数组opencv陌生
1条回答
网友
1楼 · 发布于 2024-04-23 06:43:53

在SciPy中^{}就是这样做的

您需要定义一个结构来评估哪些元素属于某个组,例如:

structure = [[1,1,1],[1,1,1],[1,1,1]]

如果您想找到附近的元素,包括对角线,或者

structure = [[0,1,0],[1,1,1],[0,1,0]]

如果你只需要一个点的左/右/上/下。请注意,该函数返回两个值,第一个是请求的数组,第二个是找到的“标签”数。你知道吗

您可能会发现^{}中的一些其他函数在此上下文中很有用。你知道吗

相关问题 更多 >