Python scipy.ndimage.find_objects用法及代码示例

用法
scipy.ndimage.find_objects(input, max_label=0)
在标记数组中查找对象。
参数:
input: 整数数组
包含由不同标签定义的对象的数组。值为 0 的标签将被忽略。
max_label: 整数,可选
要在输入中搜索的最大标签。如果没有给出max_label,则返回所有对象的位置。
object_slices: 元组列表
一个元组列表,每个元组包含 N 个切片(N 是输入数组的维度)。切片对应于包含对象的最小平行六面体。如果缺少数字,则返回 None 而不是切片。
注意:
此函数对于隔离 3-D 阵列内的感兴趣体积非常有用,它不能是“seen through”。
例子:

点击查看代码
from scipy import ndimage
a=np.zeros((6,6),dtype=int)
a[2:4,2:4]=1
a[:2,:3]=2
a[0,5]=3
print(a)
print(ndimage.find_objects(a))
print(ndimage.find_objects(a,max_label=2))
print(ndimage.find_objects(a==1,max_label=2))
loc=ndimage.find_objects(a)[0]
print(a[loc])


[[2 2 2 0 0 3]
 [2 2 2 0 0 0]
 [0 0 1 1 0 0]
 [0 0 1 1 0 0]
 [0 0 0 0 0 0]
 [0 0 0 0 0 0]]
# 解释 第一个目标全是1,它在第二行到第四行,第二列到第四列区域 slice第二位取不到
[(slice(2, 4, None), slice(2, 4, None)), (slice(0, 2, None), slice(0, 3, None)), (slice(0, 1, None), slice(5, 6, None))]
[(slice(2, 4, None), slice(2, 4, None)), (slice(0, 2, None), slice(0, 3, None))]
[(slice(2, 4, None), slice(2, 4, None)), None]
[[1 1]
 [1 1]]

转自:https://blog.csdn.net/weixin_45586124/article/details/121723923

posted @ 2024-02-28 10:20  阳光天气  阅读(63)  评论(0编辑  收藏  举报