0

我创建了一个程序,它能够预测给定形状 nx3 的一组位置,它是形状 nx1 的等值(n 是样本数)。现在我希望能够将其可视化并将其保存为网格,我已经读过一种找到等值面的顶点和面的方法是使用一种称为行进立方体的算法,我发现它在 python skimage.measure . 但是我似乎无法理解如何利用给定的数据,将其提供给 measure.marching_cubes_lewiner,因为它只说接受体积数据(M,N,P)。

我试图将它重塑为 3d 数组,但我不知道它应该是什么样子。我试图将其作为网格进行但失败了。我觉得这应该不难,但我是网格和网格的新手。


isovalue # nx1 array
isovalue = # how do I process this array(nx1) into marching cubes acceptable

print(isovalue.shape)


verts, faces, normals, values = measure.marching_cubes_lewiner(isovalue)

总是会出现错误,即行进立方体应该是 3D 数组,而不是我试图给它的。

4

1 回答 1

0

如果有人对此也感到好奇,我自己也找到了答案。如果您有 nx1 形状的一维数组,您需要将其塑造为体积数组以输入到 measure.marching_cubes_lewiner 中,将其重塑为 (cbrt(n),cbrt(n),cbrt(n)) 是就这么容易。

于 2019-08-01T17:14:41.293 回答