下面的代码给了我标题中存在的错误:
from skimage.feature import peak_local_max
local_maxi = peak_local_max(imd,labels=iml,
indices=False,num_peaks_per_label=2)
其中imd
是"距离变换图像",由以下方法获得:
from scipy import ndimage
imd = ndimage.distance_transform_edt(im)
im
是输入二进制图像,我想稍后使用scikit图像的分水岭功能进行分段。但是要正确使用这个函数,我首先需要找到将作为起始泛洪点的标记:这就是我试图用"peak_local_max"函数做的事情。
另外,iml
是我得到的im
的标记版本:
from skimage.measure import label
iml = label(im)
我不知道我做错了什么。另外,我注意到,该函数似乎完全忽略了其num_peaks
参数。例如,当我这样做时:
local_maxi = peak_local_max(imd,labels=iml,
indices=True,num_peaks=1)
我总是检测到与设置num_peaks=500
或num_peaks=np.inf
时相同数量的峰数。请问我在这里错过了什么?
> 正如@a_guest指出的那样,我的skimage
版本与我所指的文档版本不匹配。num_peaks_per_label
参数目前仅在 v0.13dev 版本中可用。将我的版本更新到 dev 版本也解决了我对 num_peaks
参数的问题。