从二进制 numpy 数组中检测表面(图像)
Detect surfaces from a binary numpy array (image)
假设我有一个来自 .jpg 图像(二维数组,来自灰度图像)的二进制 numpy 数组(0 或 1 / True 或 False)。我只是根据颜色变化做了一些处理以获得图像的边缘。
现在,我需要从这个数组的每个 surface/body 中获取它的中心。
这里是原图:
这里是处理过的:
现在我需要获取为此线生成的每个表面的中心(即,或多或少指向生成的每个表面中心的索引)。
如果您有兴趣,可以在这里找到文件 (.npy):
https://gofile.io/d/K8U3ZK
非常感谢!
找到了有效的解决方案。 scipy.ndimage.label
分配一个唯一的整数。对于每个标签或区域,为了验证结果,我简单地绘制了输出数组
from scipy.ndimage import label
labeled_array, no_feats = label(my_binary_flower)
plt.imshow(labeled_array)
假设我有一个来自 .jpg 图像(二维数组,来自灰度图像)的二进制 numpy 数组(0 或 1 / True 或 False)。我只是根据颜色变化做了一些处理以获得图像的边缘。
现在,我需要从这个数组的每个 surface/body 中获取它的中心。
这里是原图:
这里是处理过的:
现在我需要获取为此线生成的每个表面的中心(即,或多或少指向生成的每个表面中心的索引)。
如果您有兴趣,可以在这里找到文件 (.npy):
https://gofile.io/d/K8U3ZK
非常感谢!
找到了有效的解决方案。 scipy.ndimage.label
分配一个唯一的整数。对于每个标签或区域,为了验证结果,我简单地绘制了输出数组
from scipy.ndimage import label
labeled_array, no_feats = label(my_binary_flower)
plt.imshow(labeled_array)