2017-01-09 276 views
0

下面的代码给我本标题中的错误:skimage - 类型错误:peak_local_max()得到了意想不到的关键字参数“num_peaks_per_label”

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'函数做的事情。

此外,imlim标记的版本,我用的了:

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=500num_peaks=np.inf峰。请问我在这里错过了什么?

+0

你确定你正在运行'skimage'的最新版本吗?似乎最近添加了这个关键字。我想你有一个版本与最新版本的文档不同步。你能检查你正在运行的是哪个版本吗? –

+0

@ a_guest您好,根据Anaconda Navigator,我的版本是0.12.3。我没有手动安装scikit-image。看起来这是和scikit-image网站上提供的版本相同的版本。然而,他们没有提到最新的稳定版本包含在Anaconda发行版中,就像Python(x,y)和Enthought Python Distribution一样。我会尝试手动安装它,谢谢你的建议。 – kev

+0

@ a_guest再次嗨。我试图小心地安装他们在网站上提供的.whl文件,但只得到了“Requirement already satisfied”的要求。我猜我的版本是最新的? – kev

回答

0

正如@a_guest指出的,我的版本skimage与我所指的文档版本不匹配。 num_peaks_per_label参数目前仅在v0.13dev版本中可用。将我的版本更新到dev版本也解决了我的问题,即num_peaks参数。

+0

你可以验证这是你的问题的答案! –

相关问题