TypeError:marching_cubes()得到意外的关键字参数

时间:2017-04-16 16:17:29

标签: python scikit-image

我已从skimage包中导入了度量模块。我想执行测量功能行进多维数据集。这是我做的函数调用:

from skimage import measure

stuff = measure.marching_cubes(volume = p, 
              level = threshold, step_size = 1, 
              allow_degenerate = True)

此函数调用抛出一个回溯错误TypeError: marching_cubes() got an unexpected keyword argument 'step_size'。但是,measure.marching_cubes()函数确实接受step_size参数(see docs)。

如果我注释掉step_sizeallow_degenerate参数(它们有默认值),那么调用就可以正常工作,但是marching_cubes只返回2个参数(vert和faces)期望它返回4个参数(顶点,面,法线和值)。

我做错了什么,我该怎样做才能从measure.marching_cubes()获得预期的行为?

2 个答案:

答案 0 :(得分:0)

我怀疑您正在使用的skimage库存在版本问题。

您提供的documentation link适用于0.14版的skimage版本。在此版本中,参数'step_size'存在。

然而,在skimage版本0.12中,measure.marching_cubes()函数也存在,但只有4个参数,不包括step_size。我怀疑你可能使用的是版本0.12。

您还声明'marching_cubes只返回2个参数(vertfaces),我希望它返回4个参数(verts,{ {1}},facesnormal)。'在版本0.12中,该函数仅返回两个参数。因此,我强烈怀疑您使用的是旧版values

我能够通过查看documentation for version 0.12

来解决这个问题

解决方案:

尝试将skimage库升级到最新版本(目前为v0.14),并希望它能够正常运行。

干杯!!!

答案 1 :(得分:0)

较新版本的skimage中的

(在更新scikit-image时会更新),其中存在step_size参数。但是旧方法被两种方法代替; marching_cubes_lewiner和marching_cubes_classic。 marching_cubes_lewiner方法采用step_size参数。请在更新后尝试。