gpt4 book ai didi

python - 如何区分图形或数组中的多个形状?

转载 作者:行者123 更新时间:2023-12-01 04:49:59 24 4
gpt4 key购买 nike

我在 Python 中有一个 2D 数组,其中包含 0 或 1 的值,排列成各种形状。对于我当前的项目,我需要一种方法来区分图像中的形状。

我目前正在尝试通过将第一个形状的值设置为 1、将第二个形状的值设置为 2 等来实现此目的。然而,事实证明这对我来说太难编码了,所以我想知道是否有人知道一个好的算法来做到这一点,或者知道另一种方法。谢谢。

最佳答案

我怀疑您正在寻找label features它可以在 scipy.ndimage 中找到。尽管有这个名称,但它不一定特定于图像分析。引用文档“输入中的任何非零值都被视为特征,零值被视为背景。”

结果将是一个大小相同且具有编号的数组。例如下面的代码:

import numpy as np
from scipy.ndimage import measurements

arr = np.array([
[0,0,0,0,0,0],
[0,1,1,0,0,0],
[0,1,1,0,0,1],
[0,0,0,0,1,1],
[0,0,0,0,1,1]
])

labeled_array, number_of_features = measurements.label(arr)
print(labeled_array)

...将产生以下输出,两个功能分别编号为 1 和 2:

array([[0, 0, 0, 0, 0, 0],
[0, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 0, 2],
[0, 0, 0, 0, 2, 2],
[0, 0, 0, 0, 2, 2]], dtype=int32)

第二个返回参数包含数组中的number_of_features(此处为 2)。

关于python - 如何区分图形或数组中的多个形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28670800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com