我使用行进立方体算法的Scikit Image实现来生成等值面。
verts, faces,normals,values = measure.marching_cubes(stack,0)
生成以下错误:
ValueError:解包需要2个以上的值
但是
verts, faces = measure.marching_cubes(stack,0)
工作正常,因此算法似乎根本不生成normals
和values
的值。有没有人对这类问题有过任何经验?
此外,我不理解算法faces
输出的必要性,因为网格中每个三角形的一组3个顶点应该足以描述等值面?
答案 0 :(得分:4)
scikit-image开发版本的marching_cubes
normals
表明它应该返回values
和select (case when count(distinct d.action_code) <> count(*) then 1
else max(case when d.action_code % 10 <> 0 then 1 else 0 end)
end)
。然而,它最近才被引入。它们没有在版本0.12中返回,如docs中所示。要获得它们,您必须更新到当前的开发版本。可以找到有关如何安装开发版本的指南docs from that version。
答案 1 :(得分:1)
版本0.14中的marching_cubes()已被删除
skimage.measure.marching_cubes已被删除,以支持skimage.measure.marching_cubes_lewiner
因此请确保您使用的是哪个版本。