width = ndimage.measurements.maximum_width(stack, axis=0)中的ndimage.measurements.maximum_width属性已经被弃用,如何解决
时间: 2024-02-27 07:57:43 浏览: 71
SP37_Sensor Measurements MeasureSensor().rar_SP37_Sensor_birds58
可以使用scipy.ndimage.find_objects函数来代替ndimage.measurements.maximum_width。这个函数返回一个由切片对象组成的列表,每个切片对象表示找到的对象的边界框。可以将这些切片对象传递给numpy的slice函数,以提取对应的子数组。下面是一个示例代码:
```
import numpy as np
import scipy.ndimage as ndimage
# 生成随机的三维数组
stack = np.random.rand(10, 20, 30)
# 使用scipy.ndimage.find_objects函数查找对象的边界框
bbox = ndimage.find_objects(stack > 0.5)
# 使用切片对象提取对应的子数组
subarrays = [stack[obj] for obj in bbox]
# 计算子数组的最大宽度
widths = [subarray.shape[0] for subarray in subarrays]
max_width = max(widths)
print("最大宽度为:", max_width)
```
这个代码生成一个随机的三维数组,然后使用scipy.ndimage.find_objects函数查找数组中值大于0.5的对象的边界框,将对应的子数组存储在subarrays列表中,然后计算子数组的最大宽度。
阅读全文