首页 > 解决方案 > 从二进制 numpy 数组中检测表面(图像)

问题描述

假设我有一个来自 .jpg 图像(二维数组,来自灰度图像)的二进制 numpy 数组(0 或 1 / True 或 False)。我只是根据颜色变化进行了一些处理以获取图像的边缘。

现在,从这个阵列中的每个表面/物体,我需要得到它的中心。

这里是原始图像:

原始图像

这里是处理过的: 处理后的图像 - 2D np.array

现在我需要获取为这条线生成的每个曲面的中心(即或多或少指向生成的每个曲面的中心的索引)。

如果您感兴趣,可以在此处找到文件 (.npy):

https://gofile.io/d/K8U3ZK

非常感谢!

标签: pythonnumpyimage-processingdetection

解决方案


找到了一个可行的解决方案。scipy.ndimage.label分配一个唯一的 int。到每个标签或区域,为了验证结果,我只需绘制输出数组

from scipy.ndimage import label

labeled_array, no_feats = label(my_binary_flower)
plt.imshow(labeled_array)


推荐阅读